美文网首页
java.lang.UnsatisfiedLinkError

java.lang.UnsatisfiedLinkError

作者: 口子窖 | 来源:发表于2018-06-07 02:16 被阅读14次

    之前做app的时候引入一个第三方库后,报如下错误

    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/***-7Tf-RsFV6kwvEqK9L5ntUg==/base.apk"],nativeLibraryDirectories=[/data/app/com.suning.snplayer-7Tf-RsFV6kwvEqK9L5ntUg==/lib/arm64, /data/app/com.suning.snplayer-7Tf-RsFV6kwvEqK9L5ntUg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]] couldn't find "libffmpeg_pptv.so"
    

    分析了一下,原来第三方库依赖有arm64-v8a,armeabi,armeabi-v7a,x86的so库,我的app依赖的libffmpeg_pptv.so只有armeabi版本,所以导致不匹配。
    解决方法有两个:

    • 将app的so库补全
    • 或整个工程只使用armeabi的so库
      这里使用第二种办法解决,在build.gradle中添加配置
    android {
    
        defaultConfig {    
                ndk {
                    abiFilters = ["armeabi"]
                }
        }
    }
    

    NDK SO库的使用者应该遵循一个准则:要么支持所有平台,要么都不支持。

    相关文章

      网友评论

          本文标题:java.lang.UnsatisfiedLinkError

          本文链接:https://www.haomeiwen.com/subject/qnzbsftx.html