• Android java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader......couldn't find "libweibosdkcore.so


    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 {
        abiFilters "armeabi-v7a", "armeabi", "x86"  // 指定要ndk需要兼容的架构(这样其他依赖包里arm64,arm64-v8a,arm-v8...之类的so会被过滤掉)
    }
    defaultConfig {
          .....
            ndk {
                abiFilters "armeabi-v7a", "armeabi", "x86" 
            }
    }

    这句话的意思就是指定ndk需要兼容的架构,把除了以上指定的兼容包都过滤掉,只剩下指定的文件夹。用了这个方法之后,确实解决了问题。

    看了下官方文档,文档上是这么说的,可以参考一下

  • 相关阅读:
    sharepoint 2007 升级到 sharepoint 2013
    sharepoint 2010中启用RBS及所遇问题
    sharepoint 读取文件夹中所有的数据
    脚本设置ip&自动获取ip
    window 2008 r2 每隔一小时都要重启一次解决办法
    sharepoint 弹出框
    sharepoint powershell 根据报错的GUID查询错误
    java中switch选择结构
    mysql查看表字段相关信息
    mac系统 -postman发送http请求
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7656434.html
Copyright © 2020-2023  润新知