修复旧Android版本的PDFium崩溃或包含自己的库



我有一个Android应用程序,它使用标准的PdfRenderer来渲染PDF。到目前为止,它运行得很好,我设法消除了应用程序中的大部分错误。

我不知道如何摆脱的唯一错误是:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7
#00  pc 00000000000be7e0  /system/lib/libpdfium.so (FPDF_CloseDocument+12)

它有几种变体(不仅是FPDF_CloseDocument(,并且在日常会话中产生高达4%的崩溃。该问题在各种设备上的Android版本(从5到8(上都会遇到。

经过一番搜索,PDFium库(PdfRenderer的基础(在早期版本中出现了一些错误。这就是为什么这个问题没有出现在Android版本9和10上。

因此,我的实际任务是消除11个SIGSEGV崩溃

我有以下想法:

  1. 在我的应用程序中包含最新版本的PDFium目前libpdfium.so已包含在Android操作系统中。我可以将最终更正的库包含到我的应用程序中并使用它吗?在哪里可以找到libpdfium.so,以及如何在应用程序中使用它?

  2. 使用其他PDF渲染器我需要以所需的缩放和分辨率渲染PDF页面的一部分,而且我需要像MIT或Apache这样的宽松许可证,所以我不需要打开我的项目的源代码。我没有找到任何合适的东西,例如MuPDF要求打开整个项目的源代码,PSPDFKit是完全专有的。

有什么方法可以更好地消除11个SIGSEGV崩溃?

检查线程并确保没有并发问题,因为根据文档,这不是线程安全的:https://developer.android.com/reference/android/graphics/pdf/PdfRenderer

相关内容

  • 没有找到相关文章

最新更新