关于Android Studio UnsatisfiedLinkError错误的解决办法
当报错信息为:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file ]]] couldn't find "xxx.so"时,是因为so文件加载异常。
1、先判断是否忘记拷贝对应的so文件到对应的JNI目录。
2、查看手机cpu架构,到对应JNI目录查看是否有对应的so文件(32位、64位)。
解决办法:
1、将对应的so文件拷贝到对应的JNI目录下。
2、通常来说64位架构的手机可以兼容运行32位的so文件,也就是说通常保证有(armeabi armeabi-v7a)的文件即可。
如果只有其中armeabi-v7的so文件,但是手机的架构又不属于这个架构,那可以在项目中这样设置(绝大多数出现错误的原因)
defaultConfig {ndk { abiFilters"armeabi-v7a" // 指定要ndk需要兼容的架构(这样其他依赖包里mips,x86,armeabi,arm-v8之类的so会被过滤掉) }}复制代码
------------------------------------------------------------------------------------------------
如果出现错误信息:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin
在项目根目录的 gradle.properties 文件中添加:android.useDeprecatedNdk=true即可解决。