zoukankan      html  css  js  c++  java
  • 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需要兼容的架构,把除了以上指定的兼容包都过滤掉,只剩下指定的文件夹。用了这个方法之后,确实解决了问题。

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

  • 相关阅读:
    Lightoj 1321 Sending Packets(Bellman-Ford)
    Lightoj 1281 New Traffic System (记忆化Dijkstra)
    NBUT TNT #1 题解报告
    UVA 11624 BFS
    FZU 2150 枚举+BFS
    POJ 3126 BFS
    POJ 3279 DFS
    POJ 1062 dijkstra + 枚举
    lightoj 1123 增量最小生成树
    python 常用算法及解析
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7656434.html
Copyright © 2011-2022 走看看