開發時我們經常會用到第三方的jar包或者.so動態鏈接庫,在用這些文件的時候需要放在編譯器指定的
位置才能被正確的打包到.apk文件中
一、問題
在eclipse開發Android時.so庫只需要放在armeabi文件夾中,並且armeabi文件夾和普通jar包放在libs
下即可,但是在用AndroidStudio開發的時候so庫就有所不同了,如果按照在eclipse中目錄結構放置回報
java.lang.UnsatisfiedLinkError: Couldn't load msc: findLibrary returned null
找不到庫的錯誤
二、解決
方法一:
在項目的src->main目錄下新建一個文件夾,命名爲jniLibs,然後把帶有.so庫文件的文件夾armeabi
拷貝到jniLibs目錄下即可
Google引入的jniLibs目錄可以幫我們把這些庫文件打包到apk中(AS 0.7.2中很強大的功能)
補充:armeabi文件夾表示的是手機cpu的類型爲arm
方法二:
手動生成jar後和其他jar包一樣放置在libs目錄下
步驟:
1.首先要把.so庫文件壓縮在執行目錄的壓縮包中,目錄結構如下(嚴格遵守)
2.把壓縮包後綴名改爲.jar,然後拷貝到libs目錄下即可引用成功
三、小結
自己動手豐衣足食,遇到問題看看Google的文檔,上網查查資料,雖然耗費一些時間,但是收穫滿滿