背景:在使用MuPdf读取PDF文件的时候,有些机型可以显示,添加了对应的SO文件,有些机型还是报错
报错:
java.lang.UnsatisfiedLinkError
dlopen failed: "/data/app/com.css.gxydbs-1/lib/arm64/libmupdf.so" is 32-bit instead of 64-bit
com.artifex.mupdf.MuPDFCore.<clinit>(MuPDFCore.java:16)
腾讯Bugly的提示:
该异常表示打开资源失败。 [解决方案]:报这个错误通常是so库加载失败,或者找不到准备执行的JNI方法: 1.建议检查so在安装的过程中是否丢失,没有放入指定的目录下; 2.调用loadLibrary时检查是否调用了正确的so文件名,并对其进行捕获,进行相应的处理,防止程序发生崩溃; 3.检查下so的架构是否跟设备架构一至(如在64-bit架构下调用32-bit的so)。
解决方案:在main下新建jni文件夹,文件夹下新建文件Application.mk,添加内容:
APP_ABI := armeabi armeabi-v7a arm64-v8a APP_PLATFORM := android-14