cocos2dx的Android環境搭建(Windows/Mac)
我用的cocos2dx3.15版本的。
以下步驟是在Windows平台執行的。
創建Cocos2d-x項目
將剛才下載的cocos2dx3.15壓縮包解壓到你指定的文件夾里。
進入到目錄cocos2d-x-3.15/tools/cocos2d-console/bin/cocos.py
打開終端運行cocos.py腳本創建文件
python cocos.py new test -p com.coco2dx.org -l cpp -d ~/Desktop
參數說明:
- test為項目名稱
-p
后面接包名-l
后面接開發語言類型,有cpp, lua, js三種類型-d
后面接項目存放的目錄
編譯libcocos2dlua.so文件
eclipse(不太推薦,谷歌已經放棄eclipse)
- 創建一個空的android工程(我的工程是 TestAndroidCC)
- 進入到剛剛創建的cocos2dx工程的proj.android
目錄下(我的是:D:\workspace\Cocos2dx_Pro\JXKJ_GAME\frameworks\runtime-src\proj.android)
- 打開終端,執行 cocos compile -p android -android(因為cocos取消了執行build_native.py腳本編譯的方式,統一用cocos命令,環境配置好了就可以直接執行cocos命令,如果cocos2dx命令未找到,說明環境配置有問題)或者可以執行 python D:\cocos2d-x\cocos2d-x-3.15\tools\cocos2d-console\bin\cocos.py compile -p android -android
- 等待編譯完成后,找到libcocos2dlua.so文件(在libs/armeabi目錄下)
- 把剛剛編譯好的so文件所在的文件夾復制到TestAndroidCC目錄下的libs文件夾下
- 把cocos2dx的資源目錄(res和src文件夾)復制到TestAndroidCC的assets目錄下
- 把cocos2dx3.15引擎D:\cocos2d-x\cocos2d-x-3.15\cocos\platform\android\java\src目錄下的org文件拷貝到TestAndroidCC/src目錄下
- 在MainActivity.java的同級目錄創建一個新Activity文件(名字自己定義,我的是GameActivity)繼承Cocos2dxActivity(別忘了導入包import org.cocos2dx.lib.Cocos2dxActivity;)
- 在AndroidManifest.xml 添加對新Activity的配置,添加注冊新的GameActivity
- 參考cocos2dx游戲項目的AndroidManifest.xml文件,對TestAndroidCC的AndroidManifest.xml做改動
- 在activity_main.xml布局里添加一個button,然后在MainActivity里添為button添加事件
- 編譯運行TestAndroidCC,我用的是 夜神模擬器
Android Studio
- 創建一個空的android工程(我的工程是 TestAndroid)
- 進入到剛剛創建的cocos2dx工程的proj.android-studio
目錄下(我的是:D:\workspace\Cocos2dx_Pro\JXKJ_GAME\frameworks\runtime-src\proj.android-studio)
- 打開終端,執行 cocos compile -p android --android-studio(因為cocos取消了執行build_native.py腳本編譯的方式,統一用cocos命令,環境配置好了就可以直接執行cocos命令,如果cocos2dx命令未找到,說明環境配置有問題)或者可以執行 python D:\cocos2d-x\cocos2d-x-3.15\tools\cocos2d-console\bin\cocos.py compile -p android --android-studio
- 等待編譯完成后,找到libcocos2dlua.so文件(找了好久,發現在D:\workspace\Cocos2dx_Pro\JXKJ_GAME\frameworks\runtime-src\proj.android-studio\app\build\intermediates\transforms\mergeJniLibs\debug\folders\2000\1f\main\lib)
- 在app/src/main目錄下新建一個jniLibs(名字必須是這個一個字母都不能差)文件夾,把剛剛編譯好的so文件所在的文件夾(armeabi文件夾)復制到jniLibs文件夾下
- 在TestAndroid項目中導入Module,右擊項目文件 - new - Module - Import Eclipse ADT Project導入D:\cocos2d-x\cocos2d-x-3.15\cocos\platform\android\java目錄,libcocos2dx的Module導入成功
- 對TestAndroid添加libcocos2dx的引用,右擊項目文件 - app - Dependencies添加libcocos2dx
- 把cocos2dx的資源目錄(res和src文件夾)復制到TestAndroid的src/main/assets目錄下(如果沒有assets文件夾:右擊TestAndroid項目下的app文件夾 - new - Folder - Assets Folder創建)
- 在MainActivity.java的同級目錄創建一個新Activity文件(名字自己定義,我的是GameActivity)繼承Cocos2dxActivity(別忘了導入包import org.cocos2dx.lib.Cocos2dxActivity;)
- 在AndroidManifest.xml 添加對新Activity的配置,添加注冊新的GameActivity
- 參考cocos2dx游戲項目的AndroidManifest.xml文件,對TestAndroidCC的AndroidManifest.xml做改動
- 在activity_main.xml布局里添加一個button,然后在MainActivity里添為button添加事件
- 編譯運行,我用的是 夜神模擬器
如果想要退出游戲返回應用界面①cocos2dx lua項目:cc.Director:getInstance():endToLua() ②cocos2dx c++項目:cocos2d::Director::getInstance()->end();
注意事項:編譯so的時候失敗,原因可能是NDK版本過高,也有可能是sdk tools版本過高,建議下載舊一點的tools,我下載的是tools_r25.2.5-windows.zip,替換Android-SDK下的tools