我有一个使用该标准PdfRenderer
呈现 PDF 的 Android 应用程序。到目前为止它工作得很好,我设法摆脱了应用程序中的大部分错误。
我不知道如何摆脱的唯一错误是:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7
#00 pc 00000000000be7e0 /system/lib/libpdfium.so (FPDF_CloseDocument+12)
它发生在几种变体中(不仅是 FPDF_CloseDocument),并且在每日会话中产生高达 4% 的崩溃。在各种设备上从 5 到 8 的 Android 版本上都会遇到此问题。
经过一番搜索,该PDFium
库(基于该库PdfRenderer
)似乎在早期版本中有一些错误。这就是问题在 Android 9 和 10 上没有出现的原因。
所以我的实际任务是摆脱 11 次 SIGSEGV 崩溃。
在这里,我有以下想法:
在我的应用程序中包含最新版本的 PDFium。目前 libpdfium.so 包含在 Android 操作系统中。我可以将最终更正的库包含到我的应用程序中并使用它吗?在哪里可以找到 libpdfium.so 以及如何在应用程序中使用它?
使用替代的 PDF 渲染器。我需要以所需的缩放和分辨率呈现 PDF 页面的一部分,并且我需要一个非常宽松的许可证,例如 MIT 或 Apache,所以我不需要开源我的项目。我没有找到任何合适的,例如MuPDF需要开源整个项目,PSPDFKit是完全专有的。
摆脱 11 次 SIGSEGV 崩溃有什么更好的方法?