真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

eclipseJNI項(xiàng)目遷移androidstudio相關(guān)問題

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

創(chuàng)新互聯(lián)是一家專業(yè)提供明溪企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為明溪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

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

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

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

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

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

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

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

問題四:so文件生成了,測試可以用,但是后來發(fā)現(xiàn),有時(shí)候還是會出現(xiàn)那個(gè),java.lang.UnsatisfiedLinkError: No implementation found for XXXXXXXXXXXXX....

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

解決辦法,在使用so文件的那個(gè)Activity中,加個(gè)靜態(tài)代碼塊兒 static{

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

}

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


網(wǎng)站題目:eclipseJNI項(xiàng)目遷移androidstudio相關(guān)問題
分享鏈接:http://weahome.cn/article/jgcijp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部