Windows平台cocos2d-x 3.0 android開發環境

來源:互聯網
上載者:User

cocos2d-x升級到3.0後變化不小,除了API的變化(主要是函數和類名稱變化,以及使用了C++11的不少特性,function/bind, lamda, std::thread…),建立和編譯工程也做了一些簡化調整。本文主要討論一下cocos2d-x3.0 在android平台開發的環境設定及工程建立編譯流程。

1.   初始設定

除了2.x所需要的python,jdk, android sdk和ndk之外,還需要部署apache-ant。

1)      在path中設定好java環境變數:

JAVA_HOME=C:\jdk_xx.xx.xx

path加上%JAVA_HOME%\bin;

CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

2)      安裝python 2.x版本。

3)      部署好android sdk, ndk, ant之後,運行...\cocos2d-x-3.0\ setup.py。提示輸入ndk,sdk和ant目錄,這裡要注意,androidsdk設定為 …\adt-bundle-windows-x86\sdk,ndk目錄設定為…\android-ndk,而ant目錄要設定為…\apache-ant\bin,和前兩者設定為根目錄不同,要設定到bin目錄,否則不生效,部署apk的時候會提示找不到ant。

4)      三個目錄設定完成後自動關閉setup.py指令碼。開發環境設定完畢。

2.   建立工程

2.x

cocos2d-x\tools\project-creator目錄下,命令列執行python create_project.py –project ABC –package com.xyz.abc –language cpp建立工程

建立好的工程目錄在cocos2d-x\projects,不能複製到其他路徑,否則會有工程依賴問題。

 

3.0

cmd命令列進入自己選擇的工程路徑,執行cocos new MyGame -p com.your_company.mygame -l cpp

等待工程建立完畢。

3.0版本會把依賴的cocos2dx源檔案複製到自己建立的工程目錄,在cocos2d檔案夾下。所以不存在拷貝工程引起的依賴問題。

3.   編譯工程

建立完成後,cd進入工程目錄,執行cocos compile –p android –j 4編譯工程,cocos run –p android –j 4編譯+部署apk+運行。

-p參數指定平台

-j參數指定使用多少個線程執行編譯,官方的說法是可以加快編譯速度。(可選項)

預設是debug編譯,-m release可以指定編譯為發布版。注意,release必須小寫,寫成Release無效。

更多參數參見官方文檔:

https://github.com/cocos2d/cocos2d-console/issues/27

4.   部署apk

cocos deploy –p android部署編譯好的apk,cocos run –p android可以編譯好直接部署。

5.   清理工程

官方文檔的cocos clean命令執行後提示Error:argument 'clean' not found。

看一下cocos2dx的命令指令碼,目錄在cocos2d-x-3.0\tools\cocos2d-console。

查看bin目錄下的cocos2d.ini:

#

#cocos2d command line tool configuration file

#

[plugins]

project_new.CCPluginNew

project_compile.CCPluginCompile

project_run.CCPluginRun

project_deploy.CCPluginDeploy

plugin_jscompile.CCPluginJSCompile

#plugin_version.CCPluginVersion

#plugin_install.CCPluginInstall

#plugin_update.CCPluginUpdate

#plugin_clean.CCPluginClean

#plugin_dist.CCPluginDist

# To adda new plugin add it's classname here

可以看到clean命令被注釋掉了,只有new,compile, run, deploy可用,原因不明,那就不用命令清理工程了,改用手動清理吧,很簡單,需要清理時把porj.android目錄bin, obj, libs, assets, gen目錄都刪除就好了。可以寫個指令碼完成。

6.   開發環境

cocos2d-x2.x版本建立的工程可以直接使用vs2010編譯。在windows上開發調試好後移植到android平台就可以了。升級到3.0版本後,由於使用了c++11,最低支援版本為vs2012。vs2012要求win7以上os,沒法在xp系統上偵錯工具了。

既然如此,就不win32工程進行開發了,直接編譯android平台,也省去了移植這一過程。

命令列編譯部署android工程前面都介紹過了,下面需要的就是選擇一個IDE方便開發,這裡推薦codeblocks。建立工程步驟如下:

1)      在遊戲工程根目錄建立一個codeblocks空工程。

2)      添加Classes和cocos2d目錄所有檔案。

3)      先行編譯宏定義添加ANDROID 指定平台。

設定完畢,就可以進行開發了。需要編譯時間命令列執行cocos compile –p android –j 4就可以了。

根據命令列提示的錯誤碼行在codeblockside中尋找相應源檔案的對應行來定位bug。

添加新檔案時可不要只在codeblocks裡添加,還要在proj.android/jni/Android.mk中添加LOCAL_SRC_FILES。

另外,如果需要使用cocos2dx的extensions模組,也需要修改Android.mk檔案。

修改如下:

LOCAL_C_INCLUDES:= $(LOCAL_PATH)/../../Classes \

                                               $(LOCAL_PATH)/../../cocos2d\extensions

LOCAL_WHOLE_STATIC_LIBRARIES+= cocos_extension_static

$(call import-module,extensions)

添加其他模組與之類似。

7.   Log輸出

cocos2d-x3.0使用新的列印函數log(2.x版本是CCLog),我們需要使用adb和logcat工具查看log輸出(要在命令列裡使用adb,記得配置adt-bundle-windows-x86\sdk\platform-tools到path)。

命令列執行adb logcat,如果android裝置串連USB或者開著模擬器,就可以看到輸出的log資訊了,但資訊太多,程式裡列印的重要訊息很快會被淹沒,必須設定過濾條件。

可以看到cocos2d-x的log資訊格式為 D/cocos2d-xdebug info(12358): xxxx。

D表示debug,表示列印優先順序,優先順序是下面的字元,順序是從低到高:

V — 明細 (最低優先順序)

D — 調試

I — 資訊

W — 警告

E — 錯誤

F — 嚴重錯誤

S — 無記載 (最高優先順序,沒有什麼會被記載)

logcat的使用詳見http://blog.csdn.net/xyz_lmn/article/details/7004710

執行adb logcat cocos2d-xdebug info:D *:S應該就可以過濾掉其他資訊了,但執行後發現什麼資訊都沒有了,這是為什嗎?

另外建立了個android工程,調試後發現tag裡有空格adb就無法正確過濾,問題清楚了,下面需要修改一下cocos2dx的log函數。

開啟cocos2d\cocos\base\CCConsole.cpp,找到_log函數(log和CCLog都調用這個),裡面

#ifCC_TARGET_PLATFORM == CC_PLATFORM_ANDROID

__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info",  "%s", buf);

修改cocos2d-x debug info為cocos2d-x_debug_info。

重新編譯工程,命令列執行adblogcat cocos2d-x_debug_info:D *:S,可以正常過濾了,只顯示cocos2dx的log輸出。

注意,如果修改的是工程路徑下的cocos2d\cocos\base\CCConsole.cpp檔案,下次建立新工程,log函數的tag還是cocos2d-x debuginfo,想一勞永逸的話,可以修改cocos2d-x-3.0\cocos\base\CCConsole.cpp。這樣建立新工程就會把這個檔案拷貝到新工程下,就不用每次都修改了。

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.