91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

eclipse JNI項目遷移android studio相關問題

發布時間:2020-08-10 18:16:02 來源:網絡 閱讀:1015 作者:IT學無止境 欄目:移動開發

最近在弄項目遷移,eclipse上的項目用到了JNI,需要轉移到android studio,本來對JNI就不太懂,這下更麻煩了,遇到各種問題,過程痛苦不堪。不過終于做完了,把遇到問題記錄下來,同時也能讓遇到相關問題的人參考一下。

首先,我是把eclipse上的文件復制粘貼過來的,其實并不麻煩,主要是JNI,直接粘貼過來是不行的,而且在as上重新生成so文件也是不現實的,因為我jni知識太差了,只能勉強還用eclipse上的so文件,這樣的話方便的多,只要把eclipse中的libs文件夾下的,如,armeabi-v7a、armeabi文件夾復制下來,然后在as的main文件夾下創建jniLibs文件夾,然后粘貼進去,就可以了。理論是這樣但實際問題才剛剛開始。

問題一:弄過來以后根本不能用,一直報錯:java.lang.UnsatisfiedLinkError: No implementation found for XXXXXXXXXXXXX....,意思大概是找不到實現的那個JNI方法(native方法),檢測后發現方法沒問題,那肯定是so文件的問題。后來經常查閱資料,發現我新項目的包名改了,所以so文件需要重新生成。

解決辦法:重新生成so文件,把jni文件中的JNIEXPORT jbyteArray JNICALL Java_包名_類名_方法名,改為你現在使用的。(注意:可能是1個或者多個地方要改  #include后面的別改,那是生成so文件時候需要引用的)


問題二:無法生成so文件,不會弄,研究一番后發現是依賴庫指定的絕對路徑有問題。

解決辦法:就是修改android.mk那個文件,把里面依賴庫中的那個 庫名.mk文件的路徑 改為正確路徑。


問題三:還是無法生成so文件,后來發現不同的ndk版本也會受到影響,我用的是r13,后來下載了r10,能用了。

解決辦法:嘗試不同版本的ndk。


問題四:so文件生成了,測試可以用,但是后來發現,有時候還是會出現那個,java.lang.UnsatisfiedLinkError: No implementation found for XXXXXXXXXXXXX....

簡直崩潰,后來找了好多資料。

解決辦法,在使用so文件的那個Activity中,加個靜態代碼塊兒 static{

    System.loadLibrary("so文件名稱");  //例如:so文件是 libABC.so  那么用的時候就是ABC就行了

}


弄了好幾天終于解決了,希望遇到相同問題的人可以參考下。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新营市| 萍乡市| 山阳县| 灵宝市| 巴塘县| 江孜县| 南充市| 合肥市| 彩票| 乃东县| 城口县| 务川| 洮南市| 土默特左旗| 三原县| 陈巴尔虎旗| 甘谷县| 肇州县| 包头市| 塔河县| 乐亭县| 巴彦淖尔市| 浦江县| 突泉县| 平利县| 天等县| 青岛市| 望奎县| 建水县| 安义县| 涿州市| 韶关市| 阳城县| 蕉岭县| 辛集市| 子长县| 和龙市| 平南县| 大庆市| 建瓯市| 昆明市|