【備忘】Android下編譯cocos2dx工程
阿新 • • 發佈:2018-12-27
@import url(http://www.cppblog.com/cutesoft_client/cuteeditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://www.cppblog.com/cutesoft_client/cuteeditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
1- 下載 adt bundle,解壓到/home/ide/adt-bundle-mac
2- 下載 ndk,解壓到/home/sdk/android-ndk-r8c (這裡的r8c是版本號)
3- 下載 cocos2dx-1.0.1-x-0.13.0-beta,解壓到/home/sdk/cocos2dx-0.13
4- 修改 cocos2dx-0.13 下的 create-android-project.sh 開頭的ndk的路徑和android sdk 路徑為 /home/sdk/android-ndk-r8c 和 /home/ide/adt-bundle-mac/sdk
5- 執行 create-android-project.sh,按照提示輸入應用名,id,工程名,然後會生成 <工程名> 這樣一個資料夾。
6- 在工程資料夾內的android資料夾,執行build-native.sh,會把cocos2dx和其他的cpp都編譯為一個libgame.so。
7- 用adt bundle帶的eclipse,新建一個other中的android project from exist code,資料夾指向 工程資料夾。
8- 編譯可能會出一個找不到圖示的錯誤,以及R相關的錯誤,這時候雙擊AndroidManifest.xml,在Application標籤頁,點選icon後面的...按鈕,選擇一個圖示,自動會產生一個R.java,各種引數都會配置好。
9- 最後編譯,在虛擬機器上執行即可。
【可能會出現的問題】
1- 出現eglconfigchooser異常
需要在src下的org.cocos2dx.lib包下的 Cocos2dxGLSurfaceView.java 裡 151行,setRenderer 前面加上一句 setEGLConfigChooser(8,8,8,8,16,0);
2- 在eclipse裡整合c++編譯
在工程屬性裡,增加新的Builder,型別為Program。
Main下面
location 選擇為專案android目錄下的 build_native.sh
working directory 選擇為專案目錄
Refresh下面
指定資源目錄到jni
Build Options下面
選中 Allocate Console (necessary for input)
選中 Run the builder 下的每個選項
制定資源目錄為jni
確定就可以了。在clean和確定後,系統會開始編譯c++程式碼。
【這裡可以考慮將cocos2dx的編譯和遊戲編譯分開,避免每次的重新編譯。】
【原來的build_native.sh將cocos2dx和聲音引擎編譯為.a庫,可以把他們和自己遊戲需要的其他輔助庫預先編譯】
【遊戲,則連結他們編譯為.so】
3- 如何設定ndk的目標版本
在project.properties檔案裡,target=android-<版本>
4- 如何設定目標apk版本
開啟AndroidManifest.xml,裡面的 uses-sdk下的 android:minSdkVersion 修改為指定的api版本即可。