rumax / react-native-PDFView

📚 PDF viewer for React Native
MIT License
300 stars 92 forks source link

Attempt to invoke virtual method 'boolean android.os.HandlerThread.isAlive()' #237

Open justinjoyn opened 2 years ago

justinjoyn commented 2 years ago

Describe the bug A clear and concise description of what the bug is.

On Android devices, the app crashes with following error:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.HandlerThread.isAlive()' on a null object reference
       at com.github.barteksc.pdfviewer.PDFView.loadComplete(PDFView.java:756)
       at com.github.barteksc.pdfviewer.DecodingAsyncTask.onPostExecute(DecodingAsyncTask.java:80)
       at com.github.barteksc.pdfviewer.DecodingAsyncTask.onPostExecute(DecodingAsyncTask.java:27)
       at android.os.AsyncTask.finish(AsyncTask.java:771)
       at android.os.AsyncTask.access$900(AsyncTask.java:199)
       at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:233)
       at android.os.Looper.loop(Looper.java:344)
       at android.app.ActivityThread.main(ActivityThread.java:8248)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:589)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1071)

To Reproduce

Steps to reproduce the behavior:

  1. Open a screen with the PDFView component which has a resource set as a remote URL.
  2. Navigate away form the screen before the file loads.

Expected behavior Handle onLoad even after navigating away from the screen with PDFView component

Screenshots If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

Additional context Here are the related dependencies and their versions on our app.

        "@react-navigation/bottom-tabs": "6.3.3",
        "@react-navigation/native": "6.0.12",
        "@react-navigation/native-stack": "6.8.0",
        "react": "17.0.2",
        "react-native": "0.67.4",
        "react-native-view-pdf": "0.14.0",
rumax commented 2 years ago

Hi @justinjoyn , when does this issue exactly happens, is app/screen active at this moment or it is some background or other screen state? Is it also some specific pdf (if so can you share it) or any?

I see barteksc/AndroidPdfViewer has open issue which might be similar to what you reported.

justinjoyn commented 2 years ago

@rumax Thank you for looking into this. This is happening when we unmount the screen while PDFView is still loading the file. It might not be file specific because I tried with different files (mostly larger files since they take time to load).

justinjoyn commented 2 years ago

Hey @rumax were you able to reproduce this at your end? Please share if you have any updates.

justinjoyn commented 2 years ago

Issues filed on the Android dependency:

  1. https://github.com/barteksc/AndroidPdfViewer/issues/991
  2. https://github.com/barteksc/AndroidPdfViewer/issues/1086

A possible fix already exists. Here's the PR: https://github.com/barteksc/AndroidPdfViewer/pull/917

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

FaggioniHQ commented 1 year ago

Hello there,

Any news on this? Any workaround???

Thanks in advance

rumax commented 1 year ago

@FaggioniHQ as you can find from discussion above, it seems to be an issue in barteksc/AndroidPdfViewer. As a workaround, you can try to identify the specific circumstances in your project that trigger the issue and attempt to avoid them. Alternatively, if you're inclined to contribute, you have the option to submit a pull request to address and fix the problem in the library.

FaggioniHQ commented 1 year ago

hello @rumax ,

Thanks for your reply... I fixed the issue by using the latest version of https://github.com/mhiew/AndroidPdfViewer

On the latest version, the issue was fixed


buildscript {
 ext {
   ...
   pdfViewerVersion = "3.2.0-beta.3"
   pdfViewerRepo = "com.github.mhiew"
 }
 ...
}
rumax commented 1 year ago

Maybe com.github.mhiew has to be default dependency. It also solves JCenter issue.

tejasjoshiagile commented 2 months ago

hello @rumax ,

Thanks for your reply... I fixed the issue by using the latest version of https://github.com/mhiew/AndroidPdfViewer

On the latest version, the issue was fixed

buildscript {
 ext {
   ...
   pdfViewerVersion = "3.2.0-beta.3"
   pdfViewerRepo = "com.github.mhiew"
 }
 ...
}

100% working