android so库找不到报java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "

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文件的兼容和适配

猜你喜欢

转载自blog.csdn.net/u014769864/article/details/79224595