首頁 > 軟體

android ndk 開發建議

2019-11-28 07:13:43

    ① android ndk開發開發過程中難免會遇到問題,但是遇到問題後,改如何辦?

    ② andorid sdk 和 andorid ndk 的更新速度過快,每次新的版本的發布或多或少的會增加一些新的元素,這些新的元素網上一般很難找到可以參考的文件,遇到這個問題如何處理?

    方便他人亦是方便自己,如果覺得還行就點下右邊投票吧,這樣可以幫助其他人更快的找到解決問題的方法;有疑問的也可留言哦, 謝謝!

1

重新編譯:

1、切換到 c/c++模式,如下圖1所示:

2、右鍵工程

3、點選彈出選單上的 Clean Project

4、工具列上的Build All,重新編譯一次



2

檢查elipse裡面其他的工程是否有錯誤,如果其他的工程有錯誤,eclipse 也是不允許執行的,這時候可以考慮把不相關的有錯誤的工程關掉;右鍵工程->Close Project既可以啦,效果如下所示




3

檢查手機或者模擬器的APP_ABI 和 ndk的APP_ABI是否一致,如何檢視ABI:

1、檢視模擬器ABI:

    ① 開啟 工具列->Android Virtual Device Manager;

    ② 檢視需要檢視的模擬器的 CPU/ABI一欄就是

2、檢視程式碼的ABI版本:

    ① 檢視 工程->jni->Application.mk->APP_ABI 就是;

    ② 如果沒有 Application.mk 檔案或者沒有 APP_ABI 欄位,系統預設的是 armeabi-v7a 系列

3、具體的如下圖所示:



4

重新啟用「?add?native?support」載入一次:http://jingyan.baidu.com/article/380abd0a7309181d91192c55.html

5

對於函數無法解析的問題,可以考慮關閉eclipse的c/c++部分的語法與語意檢查查,具體設定如下圖所示:


6

重新啟動eclipse1、關閉eclipse2、再次開啟eclipse

7

切換一個新的 ?workspace注:1、換了 workspace 後ndk的路徑需要重新設定2、新的workspace最好是空的目錄,裡面不要用東西

8

1、注釋掉 Appliacation.mk 中的 APP_ABI 這一行2、編譯通過後,開啟檔案 hello-jni.c3、發現eclipse沒有錯誤了,4、再開啟 Application.mk 中的 APP_ABI := all 這一行5、再編譯就可以了

如下圖所示:


9

新建一個測試程式測試一下環境設定是否設定正確:

如:匯入ndk自帶的測試程式 hello-jni 


10

重新啟動電腦

11

重新設定android ndk環境:http://jingyan.baidu.com/article/3ea51489e7a9bd52e61bbac7.html

12

標頭檔案找不到時可以考慮在在 Android.mk 檔案中增加 -landroid 這個庫

LOCAL_LDLIBS += -landroid

如下:


1

android ndk 官方自帶的幫助文件,如:

     "D:Androidandroid-ndk-r10docsStart_Here.html"

如:

1、hello-jni 這個程式非常的重要,重要在它可以用來幫助測試環境是否設定正確;

2、android.mk 他主要是用來設定應用程式相關的makefile;

3、application.mk 主要是用來設定跟編譯換相關的的makefile,如abi型別,c++型別,是否開啟偵錯等;




2

檢視ndk層跟android系統相關的標頭檔案;

1、如:我的在這個目錄下面:「D:Androidandroid-ndk-r10platformsandroid-19arch-armusrincludeandroid」

2、由於ndk跟android相關的所有的標頭檔案裡的函數不是太多

3、由於android ndk官方也習慣也把函數的註釋寫到標頭檔案裡

具體檢視的操作流程如下:




3

關於「eclipse匯入java和android sdk原始碼,幫助文件」的方法,可以看:? ??http://jingyan.baidu.com/article/acf728fd2476e2f8e410a35a.html

1

由於手機市場的手機系統太多,如:mtk,sprd,互信,mstar,遊戲基地,android,ios,wp8,黑莓,塞班,芒果,xbox等一些列的平台或者系統,當然不知道的還有很多,所以建議大家:1、重點學習一個平台;2、學會寫跨平台的程式碼;

2

善於使用百度和google解決問題:1、關於在國內搜尋「如何開啟google「可以看:? ? http://jingyan.baidu.com/article/6079ad0e624cfd28fe86db5f.html2、關於在國外搜尋「如何存取google「可以看:? ??http://jingyan.baidu.com/article/4b52d702748ed1fc5c774b96.html

1

    方便他人亦是方便自己,如果覺得還行就點下下邊投票吧,這樣可以幫助其他人更快的找到解決問題的方法;有疑問的也可留言哦, 謝謝!



IT145.com E-mail:sddin#qq.com