Android Question Pdfrenderer crash in Android 7.1

junaidahmed

Well-Known Member
Licensed User
Longtime User
I am using Pdfrenderer in my application to get bimap of PDF file.

it works fine in Android 5.1 but when I run the same application in Android 7.1.2 it shows an error message as

Logger connected to: Xiaomi Redmi 4
--------- beginning of system
--------- beginning of crash
--------- beginning of main
** Activity (main) Create, isFirst = true **
autoversion: 290.0
compilation time: 02/22/2018 18:11:38
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (entry) Create, isFirst = true **
** Activity (entry) Resume **
** Activity (main) Create, isFirst = true **
autoversion: 290.0
compilation time: 02/22/2018 18:11:38
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (entry) Create, isFirst = true **
** Activity (entry) Resume **
entry_cmdbrowse_click (java line: 561)
java.lang.IllegalArgumentException: Invalid page index
at android.graphics.pdf.PdfRenderer.throwIfPageNotInDocument(PdfRenderer.java:266)
at android.graphics.pdf.PdfRenderer.openPage(PdfRenderer.java:219)
at de.donmanfred.PDFRendererwrapper.renderPageforDisplay(PDFRendererwrapper.java:79)
at com.cabinet.entry._cmdbrowse_click(entry.java:561)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:170)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:166)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:5647)
at android.view.View$PerformClick.run(View.java:22462)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6205)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
java.lang.IllegalArgumentException: Invalid page index
** Activity (main) Create, isFirst = true **
autoversion: 290.0
compilation time: 02/22/2018 18:11:38
** Activity (main) Resume **
Copying updated assets files (3)
** Activity (main) Create, isFirst = true **
autoversion: 292.0
compilation time: 02/22/2018 18:14:03
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
** Activity (entry) Create, isFirst = true **
** Activity (entry) Resume **
** Activity (entry) Pause, UserClosed = false **
** Activity (entry) Resume **
Error occurred on line: 448 (Main)
java.lang.IllegalArgumentException: Invalid page index
at android.graphics.pdf.PdfRenderer.throwIfPageNotInDocument(PdfRenderer.java:266)
at android.graphics.pdf.PdfRenderer.openPage(PdfRenderer.java:219)
at de.donmanfred.PDFRendererwrapper.renderPageforDisplay(PDFRendererwrapper.java:79)
at com.cabinet.entry._cmdbrowse_click(entry.java:740)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:710)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:342)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:249)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:139)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:170)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:166)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:5647)
at android.view.View$PerformClick.run(View.java:22462)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6205)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com
 

DonManfred

Expert
Licensed User
Longtime User
Please upload a sample project which shoes the issue. Include your pdf in the project...
Based on the error you are accessing an not existing pageindex....
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
As i wrote. the problem is that you are accessing a page which does not exists.
Please note that the example is wrong. It expect the pages are from 1 to somewhat... But the pages have index 0 to x-1

This works for me on my Note 8 (Android 7.1)

B4X:
        lblPages.Text = pdf.PageCount-1
        lblPages.Tag = pdf.PageCount-1
        lblPage.Text = 1
        lblPage.Tag = 1
        'pdf.InitialRender(bmp)
        image.Bitmap = pdf.renderPageforDisplay(0)

Check this example: https://www.dropbox.com/s/oicpn1dfdrh7zjd/PdfRenderer2Ex.zip?dl=0

PD: i´m pretty sure that it does not work on every other android version using the wrong indexes.... Even 5.1
 
Last edited:
Upvote 0
Top