1. 程式人生 > >Android6.0 UnsatisfiedLinkError couldn't find "xxx.so"

Android6.0 UnsatisfiedLinkError couldn't find "xxx.so"

Android M 執行app時候出現如下問題:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/xxx-1/base.apk"],nativeLibraryDirectories=[/data/app/xxxx-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "xxx.so"

經過排查目前專案中支援CPU架構有(armeabi-v7a','armeabi''x86' 應用so 庫會根據CPU的型別查詢.SO庫,當使用cpu型別為64位,就不會再往下查詢.SO。報如上錯誤。

 

由於 libs目錄的不同cpu架構資料夾下面都存在相應的so檔案,所以排除tragetSdkVersion編譯版本過高導致的原因


解決這個問題:

在build.gradle中加入

   

android {

    splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi-v7a', 'armeabi'
            universalApk 
false } }


參考資料:http://frescolib.org/docs/multiple-apks.html#_

原文地址


擴充套件:


android多cpu架構適配開篇

關於Android的.so檔案你所需要知道的