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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值