AndroidStudio 关于第三方so文件不全导致java.lang.UnsatisfiedLinkError解决办法

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList

关于上面这个异常,我之前遇到好多次,基于androidstudio可能是一个坑。


之前做项目使用了很多第三方包,都含有so文件,但是每个第三方好像给的so都不全,有的只有armeabi,有的还有x86之类的,有时候我为了方便都拷贝进jniLibs里面,但是这次心血来潮我把其他的删了,只保留了armeabi文件夹下的so文件,就报这个错了。

我个人理解是因为你都考进去的时候,as默认就对这几个文件夹进行了指定,但你删除了其他文件夹后,as找不到他指定的文件夹了就报错,所以需要手动给他指定去哪找他想要的so文件。

所以我们需要在build.gradle里面 添加一行代码

defaultConfig{
...

ndk{
...
abiFilter("armeabi")   //重点是这句,
}
}

同时,在gradle.properties 里 加上 
android.useDeprecatedNdk=true
 
 
 
 
这样基本就解决问题了,说道这里,不得不说build.gradle里面隐藏了太多我不知道的属性,还需加强了解
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值