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里面隐藏了太多我不知道的属性,还需加强了解