Android so庫編譯錯誤 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file

10-11 11:33:14.047 7427-7427/com.example.xxxxxxxx E/AndroidRuntime: FATAL EXCEPTION: main
                                                                     Process: com.example.xxxxxxxx, PID: 7427
                                                                     java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.xxxxxxxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.xxxxxxxx-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libxxxxx.so"
                                                                         at java.lang.Runtime.loadLibrary(Runtime.java:367)
                                                                         at java.lang.System.loadLibrary(System.java:1076)
                                                                         at vivali.utility.drive.xxxxxxx.<clinit>(xxxxxxx.java:9)
                                                                         at com.example.ccoretest.MainActivity.writeToPriFile(MainActivity.java:627)
                                                                         at com.example.ccoretest.MainActivity.onActivityResult(MainActivity.java:354)
                                                                         at android.app.Activity.dispatchActivityResult(Activity.java:7165)
                                                                         at android.app.ActivityThread.deliverResults(ActivityThread.java:5004)
                                                                         at android.app.ActivityThread.handleSendResult(ActivityThread.java:5051)
                                                                         at android.app.ActivityThread.access$1600(ActivityThread.java:229)
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                         at android.os.Looper.loop(Looper.java:148)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:7410)
                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

.so庫編碼格式被改造成的錯誤。

本身這個錯誤很常見,但是我按照一般方法,在build.gradle下添加

android {

        ndk {
            // 設置支持的SO庫架構
            abiFilters 'armeabi' ,'x86', 'armeabi-v7a', 'x86_64','arm64-v8a'
        }
    }
}

等等,各種關於build.gradle的更改方式都遍歷了,結果還是同樣的問題。

最後我突然想到,這個工程從eclipse導入Androidstudio中之後,我曾經點擊過.so庫的編碼格式,由GBK到utf-8倒換過,當然一直都是亂碼。以爲沒影響。但是想到了還是重新試了把eclipse工程導入Androidstudio裏,不要點擊編碼格式,發現直接編譯,沒有任何問題。

對於.so庫應用不熟悉,導致的錯誤耗時過久。紀念一下,希望可以幫到大家

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章