我有一个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崩溃。
我有以下想法:
在我的应用程序中包含最新版本的PDFium目前libpdfium.so已包含在Android操作系统中。我可以将最终更正的库包含到我的应用程序中并使用它吗?在哪里可以找到libpdfium.so,以及如何在应用程序中使用它?
使用其他PDF渲染器我需要以所需的缩放和分辨率渲染PDF页面的一部分,而且我需要像MIT或Apache这样的宽松许可证,所以我不需要打开我的项目的源代码。我没有找到任何合适的东西,例如MuPDF要求打开整个项目的源代码,PSPDFKit是完全专有的。
有什么方法可以更好地消除11个SIGSEGV崩溃?
检查线程并确保没有并发问题,因为根据文档,这不是线程安全的:https://developer.android.com/reference/android/graphics/pdf/PdfRenderer