Android Studio在報錯java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file
阿新 • • 發佈:2019-02-06
集成了極光推送的SDK後,發現初始化Init一直失敗的問題,
以為自己的SDK整合有問題,對著整合指南比對了一遍,沒發現問題.
又通過看Logcat的日誌輸出,發現竟然報loadLibrary失敗,也即是載入so時失敗了.
難道是極光的sdk有問題,載入so的路徑有問題,如果是這樣的話,官方應該早就發現了才對.
再想一想,既然這個問題只有我遇到了,並且整合步驟是正常的, 那麼會不會是AS的版本不同,導致的環境不同,從而導致的.
AS的環境最有可能的地方是 build.gradle了.
又在網上找了下,果然在一些AS的版本上.so的載入需要在build.gradle進行配置,並且不同的版本配置出的效果還不同.
否則會導致打包出的apk檔案中缺少lib目錄,有的是有lib目錄,但是裡面缺少so檔案.
我的AS是3.1.2版本,對應的在app下的build.gradle中android裡配置:
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
有的版本是對應的在app下的build.gradle中android裡配置:
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
這種配置方法在我的3.1.2上測試,打包apk時依舊不會生成lib目錄.