2021-05-12 14:32:11
android ndk 開發建議
① 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.html5
對於函數無法解析的問題,可以考慮關閉eclipse的c/c++部分的語法與語意檢查查,具體設定如下圖所示:
6
重新啟動eclipse1、關閉eclipse2、再次開啟eclipse7
切換一個新的 ?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.html12
標頭檔案找不到時可以考慮在在 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.html1
由於手機市場的手機系統太多,如: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.html1
方便他人亦是方便自己,如果覺得還行就點下下邊的投票吧,這樣可以幫助其他人更快的找到解決問題的方法;有疑問的也可留言哦, 謝謝!
相關文章