android studio 加載不出so庫問題解決

error exception : Couldn’t load zbar from loader dalvik.system.PathClassLoader …..

今天遇到個莫名其妙的問題,就是AS里加載不出so文件,檢查了好幾遍,發現沒有問題呀,這裏簡單記錄下。

so文件加載不出來,或者調用出錯,一般有兩個問題:

一:路徑不對,可能我們改變了原有類的路徑造成的native方法映射不到,所以再使用第三方的庫的時候,儘量不要去改變包名,以及相關類的路徑。

二:配置不對,AS存放so文件有兩種方式,一種是在/libs/armeabi/xxx.so ,另一種是/jniLibs/armeabi/xxx.so ,無論哪種方式,我們都需要在build.gradle裏面進行相關的配置的。

dependencies {
compile fileTree(include: [‘*.jar’], dir: ‘libs’) //記得添加依賴,一般默認的都會自動生成

sourceSets {
main { //這個配置是必須的,如果你的so文件放在了libs/armeabi/下,則下面srcDir = libs即可
jniLibs.srcDirs = [‘src/main/jniLibs’]

    }
}

注意 jniLibs.srcDirs = [‘src/main/jniLibs’] 路徑的拼寫,之前參考網上的好多博客,都是直接srcDir=jniLibs,這裏必須是src/main/jniLIbs,或者 srcDir=libs

好了,一般注意這兩點,基本上就沒有什麼問題了。

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