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

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

1.   初始設置

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

1)      在path中設置好java環境變量:java

JAVA_HOME=C:\jdk_xx.xx.xxpython

path加上%JAVA_HOME%\bin;android

CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarc++

2)      安裝python 2.x版本號。git

3)      部署好android sdk, ndk, ant以後,運行...\cocos2d-x-3.0\ setup.py。github

提示輸入ndk。sdk和ant文件夾。這裏要注意,androidsdk設置爲 …\adt-bundle-windows-x86\sdk,ndk文件夾設置爲…\android-ndk,而ant文件夾要設置爲…\apache-ant\bin,和前二者設置爲根文件夾不一樣,要設置到bin文件夾。不然不生效。部署apk的時候會提示找不到ant。apache

4)      三個文件夾設置完畢後本身主動關閉setup.py腳本。開發環境設置完畢。windows

2.   建立project

2.x

cocos2d-x\tools\project-creator文件夾下,命令行運行python create_project.py –project ABC –package com.xyz.abc –language cpp建立project

建立好的project文件夾在cocos2d-x\projects,不能拷貝到其它路徑,不然會有project依賴問題。

 

3.0

cmd命令行進入本身選擇的project路徑,運行cocos new MyGame -p com.your_company.mygame -l cpp

等待project建立完畢。

3.0版本號會把依賴的cocos2dx源文件拷貝到本身建立的project文件夾,在cocos2d文件夾下。因此不存在拷貝project引發的依賴問題。

3.   編譯project

建立完畢後,cd進入project文件夾。運行cocos compile –p android –j 4編譯project,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.   清理project

官方文檔的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可用,緣由不明,那就不用命令清理project了,改用手動清理吧。很是easy,需要清理時把porj.android文件夾bin, obj, libs, assets, gen文件夾都刪除就行了。可以寫個腳本完畢。

6.   開發環境

cocos2d-x2.x版本號建立的project可以直接使用vs2010編譯。

在windows上開發調試好後移植到android平臺就可以了。升級到3.0版本號後,由於使用了c++11,最低支持版本號爲vs2012。

vs2012要求win7以上os,無法在xp系統上調試程序了。

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

命令行編譯部署androidproject前面都介紹過了,如下需要的就是選擇一個IDE方便開發。這裏推薦codeblocks。建立project過程例如如下:

1)      在遊戲project根文件夾建立一個codeblocks空project。

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應該就可以過濾掉其它信息了,但運行後發現什麼信息都沒有了,這是爲何?

另外建立了個androidproject。調試後發現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。

又一次編譯project,命令行運行adblogcat cocos2d-x_debug_info:D *:S,可以正常過濾了,僅僅顯示cocos2dx的log輸出。

注意,假設改動的是project路徑下的cocos2d\cocos\base\CCConsole.cpp文件。下次建立新project。log函數的tag仍是cocos2d-x debuginfo,想一勞永逸的話,可以改動cocos2d-x-3.0\cocos\base\CCConsole.cpp。

這樣建立新project就會把這個文件拷貝到新project下,就不用每次都改動了。

相關文章
相關標籤/搜索