[英]Repair PDFium crashes for old Android versions or include own library
我有一个 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% 的崩溃。 在各种设备上从 5 到 8 的 Android 版本上都会遇到该问题。
经过一番搜索,发现PDFium
库( PdfRenderer
所基于的库)在早期版本中存在一些错误。 这就是为什么这个问题没有出现在 Android 9 和 10 版本上的原因。
所以我的实际任务是摆脱 11 SIGSEGV crashes 。
在这里,我有以下想法:
将最新版本的 PDFium 包含到我的应用程序中。 目前 libpdfium.so 包含在 Android 操作系统中。 我可以将最终更正的库包含到我的应用程序中并使用它吗? 在哪里可以找到 libpdfium.so 以及如何在应用程序中使用它?
使用替代的 PDF 渲染器。 我需要以所需的缩放比例和分辨率渲染 PDF 页面的一部分,并且我需要像 MIT 或 Apache 这样非常松散的许可证,所以我不需要开源我的项目。 我没有找到任何合适的,例如MuPDF需要开源整个项目, PSPDFKit是完全专有的。
有什么方法可以更好地摆脱 11 次 SIGSEGV 崩溃?
检查您的线程并确保没有并发问题,根据文档它不是线程安全的: https : //developer.android.com/reference/android/graphics/pdf/PdfRenderer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.