java.lang.UnsatisfiedLinkError: No implementation found for int com.xxx.xx中的couldn’t find “XX.so”或loadLibrary("xxx")失败

我觉得这是个神坑,虽然早几年网上就很多po出来的解决方式,但是同样的问题,我的bug却稳如泰山,一点用都没有,好气

下面总结一下

这里前面先是有个系统打印信息

I/System.out: loadLibrary(IOTCAPIsT),dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/com.winstars.petclient1/base.apk"],
nativeLibraryDirectories=[/data/app/com.winstars.petclient-1/lib/arm64, /data/app/com.winstars.petclient-1/base.apk!/lib/arm64-v8a, 
/vendor/lib64, /system/lib64]]] couldn't find "libIOTCAPIs.so"

然后就开始一长串的java.lang.UnsatisfiedLinkError: No implementation found for int com.xxx.xx什么什么的报错

因为不是所有的第三方库都会适配所有CPU架构,那么如果某个CPU去默认加载它对应的架构时,里面没有包含着的so文件,就会报这样的错。

解决方法:

我们可以指定所有的CPU都只加载同一个armeabi包下的

这里同步完之后会报需要修改gradle.properties的提示  照它说的做就行了“set....'android.useDeprecatedNdk=true' in gradle.properties..”

就是上图的最后一句,如果你的项目里没有这个文件,新建

 

可能也不全是这原因吧 就我的问题而言 是这样解决的

posted @ 2017-05-09 11:12  Sharley  阅读(6268)  评论(2编辑  收藏  举报