小编Asw*_*hok的帖子

Android PdfRenderer 抛出 IOException

我的应用程序列出了 PDF 文件,当用户选择一个 PDF 时,应用程序会打开它。如果用户选择损坏的 PDF 文件,PdfRenderer 将抛出IOException(这很好,因为我捕获了该异常并通知用户该文件已损坏)。

但问题是,在发生这种情况后,IOException用户尝试打开的所有 PDF 文件都会被抛出(即使对于未损坏的文件)

相关代码

File file = new File(filePath);
mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
if (mFileDescriptor != null) {
     mPdfRenderer = new PdfRenderer(mFileDescriptor);
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪

openRenderer: java.io.IOException: file not in PDF format or corrupted
    at android.graphics.pdf.PdfRenderer.nativeCreate(Native Method)
    at android.graphics.pdf.PdfRenderer.<init>(PdfRenderer.java:166)
    at ****.****.****.PdfUtil.openRenderer(PdfUtil.java:63)
    at ****.****.****.PdfUtil.getMaxPages(PdfUtil.java:46)
    at ****.****.****.PdfViewActivity.init(PdfViewActivity.java:166)
    at ****.****.****.ui.PdfViewActivity.onCreate(PdfViewActivity.java:58)
    at android.app.Activity.performCreate(Activity.java:7023)
    at android.app.Activity.performCreate(Activity.java:7014)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:172)
    at android.app.ActivityThread.main(ActivityThread.java:6590) …
Run Code Online (Sandbox Code Playgroud)

pdf android ioexception pdfrenderer pdf-rendering

5
推荐指数
0
解决办法
760
查看次数

标签 统计

android ×1

ioexception ×1

pdf ×1

pdf-rendering ×1

pdfrenderer ×1