天天看點

“Init library failed & error:!java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader"問題解決

1. 問題描述:

在android-studio中,進行項目編譯時,出現以下error:

Init library failed & error:!java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/xxxxx/base.apk"],nativeLibraryDirectories=[/data/app/xxxxx/base/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libxxx.so"

2. 原因分析:

很顯然,是因為沒有正确load相應的so庫。可是,我已經在libs下面放置了so庫了啊。通過在/data/data/包名/lib下面檢視,的确沒有這個.so檔案(我的手機是root過的,是以可以用root權限打開/data/data/包名/lib這個目錄),

那麼,為什麼會這樣呢?

經查,是因為在gradle檔案中沒有指定相應的so檔案的目錄

3. 解決辦法:

在項目的build.gradle檔案中,加入以下code,再編譯,問題解決:

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']  //
        jni.srcDirs = [] //disable automatic ndk-build
    }
}      

其中,jniLibs.srcDirs指定的就是so所在的目錄。

用android-studio開發,了解gradle相關知識,必不可少。

繼續閱讀