在 ViewPager 中使用 PDFViewer,并在 PDF 加载前滑动删除,会导致 NPE 发生崩溃
作者: Zhuinden创建于 2026年1月25日更新于 2026年1月25日
Fatal Exception: java.lang.NullPointerException Attempt to invoke virtual method 'boolean java.lang.Thread.isAlive()' on a null object reference com.GitHub.barteksc.pdfviewer.PDFView.loadComplete (PDFView.java:756) com.GitHub.barteksc.pdfviewer.DecodingAsyncTask.onPostExecute (DecodingAsyncTask.java:80) com.GitHub.barteksc.pdfviewer.DecodingAsyncTask.onPostExecute (DecodingAsyncTask.java:27) android.os.AsyncTask.finish (AsyncTask.java:771) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:961) 然而,真正的问题在于,`onDetachedFromWindow`会杀死 RenderingThread 并将其设置为 null,但没有 `onAttachedToWindow` 的对应函数。如果在 PDF 加载之前在 ViewPager 中滑动,则 RenderThread 将被销毁。事实上,我猜测仅仅滑动并返回滑动并返回也会导致崩溃,因为 RenderThread 被销毁但从未重新创建
内容来源: DImuthuUpe/AndroidPdfViewer