Android java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader......couldn't find "libweibosdkcore.so
2017-10-12 15:48
531 查看
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/***/base.apk"],nativeLibraryDirectories=[/data/app/***/lib/arm64, /data/app/***/base.apk!/lib/arm64-v8a,
/vendor/lib64, /system/lib64]]] couldn't find "libweibosdkcore.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at com.sina.weibo.sdk.net.HttpManager.(HttpManager.java:83)
at com.sina.weibo.sdk.net.NetUtils.internalHttpRequest(NetUtils.java:46)
at com.sina.weibo.sdk.cmd.WbAppActivator.requestCmdInfo(WbAppActivator.java:121)
at com.sina.weibo.sdk.cmd.WbAppActivator.access$4(WbAppActivator.java:110)
at com.sina.weibo.sdk.cmd.WbAppActivator$1.run(WbAppActivator.java:80)
at java.lang.Thread.run(Thread.java:818)
最近项目中遇到了这个bug,提示在arm64、arm64-v8a下找不到libweibosdkcore.so,因为项目中只适配了"armeabi-v7a", "armeabi", "x86"平台,因为如果全部都适配的话,包很大,这样兼容那些用户数极少的cpu就很不划算,所以我们只适配了这三个。但是最近后台统计在arm64的机器上,提示libweibosdkcore.so文件找不到,我记得这个应该是向下兼容的,但是出现这种情况很奇怪,于是我就在网上找了找答案。
解决方法:
abiFilters
在自己项目的modle的build.gradle中的defaultConfig里添加上这么一句:
这句话的意思就是指定ndk需要兼容的架构,把除了以上指定的兼容包都过滤掉,只剩下指定的文件夹。用了这个方法之后,确实解决了问题。
看了下官方文档,文档上是这么说的,可以参考一下
/vendor/lib64, /system/lib64]]] couldn't find "libweibosdkcore.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at com.sina.weibo.sdk.net.HttpManager.(HttpManager.java:83)
at com.sina.weibo.sdk.net.NetUtils.internalHttpRequest(NetUtils.java:46)
at com.sina.weibo.sdk.cmd.WbAppActivator.requestCmdInfo(WbAppActivator.java:121)
at com.sina.weibo.sdk.cmd.WbAppActivator.access$4(WbAppActivator.java:110)
at com.sina.weibo.sdk.cmd.WbAppActivator$1.run(WbAppActivator.java:80)
at java.lang.Thread.run(Thread.java:818)
最近项目中遇到了这个bug,提示在arm64、arm64-v8a下找不到libweibosdkcore.so,因为项目中只适配了"armeabi-v7a", "armeabi", "x86"平台,因为如果全部都适配的话,包很大,这样兼容那些用户数极少的cpu就很不划算,所以我们只适配了这三个。但是最近后台统计在arm64的机器上,提示libweibosdkcore.so文件找不到,我记得这个应该是向下兼容的,但是出现这种情况很奇怪,于是我就在网上找了找答案。
解决方法:
abiFilters
在自己项目的modle的build.gradle中的defaultConfig里添加上这么一句:
ndk { abiFilters "armeabi-v7a", "armeabi", "x86" // 指定要ndk需要兼容的架构(这样其他依赖包里arm64,arm64-v8a,arm-v8...之类的so会被过滤掉) }
defaultConfig { ..... ndk { abiFilters "armeabi-v7a", "armeabi", "x86" } }
这句话的意思就是指定ndk需要兼容的架构,把除了以上指定的兼容包都过滤掉,只剩下指定的文件夹。用了这个方法之后,确实解决了问题。
看了下官方文档,文档上是这么说的,可以参考一下
相关文章推荐
- java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader......couldn't find "libweibosdkcore.so
- Android 导入so包后,报java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
- 如何解决java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList couldn't find xx so
- Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClass
- Android中java.lang.ClassNotFoundException: ***.**** in loader dalvik.system.PathClassLoader[/data/app
- Fragment:java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLo
- java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK_v2_3_1 from loader dalvik.system.PathClass
- 【Exception】java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClass
- android os文件, java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPcouldn't find "*.so"
- 微博授权错误:Couldn't load weibosdkcore from loader dalvik.system.PathClassLoader
- armeabi中so文件兼容问题,异常java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList
- AndroidStudio打包Apk java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader:couldn't find "lib
- java.lang.UnsatisfiedLinkError: Couldn't load easemob_jni from loader dalvik.system.PathClassLoader
- java.lang.UnsatisfiedLinkError: Couldn't load hyphenate_av from loader dalvik.system.PathClassLoader
- java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
- java.lang.UnsatisfiedLinkError: Couldn't load memchunk from loader dalvik.system.PathClassLoader
- Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader解决方法
- “Init library failed & error:!java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader"问题解决
- java.lang.UnsatisfiedLinkError: Couldn't load vi_voslib from loader dalvik.system.PathClassLoader
- Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 解决方案