demo写得好好的,没什么问题,丢到项目中出现了
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
[DexPathList[[zip file"/data/app/com.tjwreader2/base.apk"],
nativeLibraryDirectories=
[/data/app/com.tjwreader-2/lib/arm64, /data/app/com.tjwreader-
2/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]]
couldn't find "libmupdf.so"
网上也很多答案,出现这种情况基本2中方法就可以决解。
决解方法一
在armeabi同目录下建一个文件夹armeabi-v7a,把armeabi的文件copy一份到armeabi-v7a,两个文件夹so库一定要一毛一样,例如下图
如果上面方法一还是没有找到so库,使用方法二
决解方法二
在app(主工程)的build.gradle中添加ndk支持,代码如下
android {
compileSdkVersion 25
buildToolsVersion "26.0.1"
defaultConfig {
...
...
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
...
...
}
在运行看看,基本没问题了。这里还有一篇关于so文件的兼容小总结Android SO文件的兼容和适配