一. 前期準備
cocos2d-x2.2.1
2013年11月19日更新
下載地址:http://www.cocos2d-x.org/download
2.jdk
java環境是必須的,這個在官網上下載
下載地址:http://www.java.com/zh_CN/download/manual.jsp
3. Android開發環境
這個是android交叉編譯必須的IDE環境,內含Eclipse
下載地址:http://developer.android.com/sdk/index.html
4.Android NDK
android交叉編譯時,對C/C++代碼的解釋編譯工具
下載地址:http://developer.android.com/tools/sdk/ndk/index.html
5.python
cocos2d-x2.0版本以后用python腳本來創建工程,所以需要python環境
下載地址:http://www.python.org/download/
注意:請下載python2.7.6 64位版本,不要下3.3的版本
6.cygwin
對cocos2d-x本地C/C++代碼的解釋編譯工具
下載地址:http://cygwin.com/install.html
至此我們所需要的軟件都已經準備完畢,接下來可以開始正式搭建環境了!
二. 搭建Android開發環境
1.java環境
android環境的搭建少不了java,先把下載好的JDK選擇默認路徑安裝好后,然后用wmic命令向系統添加java的環境變量。
win+R運行cmd,輸入以下三個命令:
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="C:\Program Files\Java\jre7"
以上為一行
wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=";%JAVA_HOME%\lib\;"
以上為一行
wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;C:\Program Files\Java\jre7\bin"
以上為一行
然后進入系統環境變量設置界面更新一下,重啟cmd,試一下輸入java,只要不是出現“java不是內部命令或外部命令”之類的,就表示你設置成功了。
2.Android環境
找到我們下載的adt-bundle-windows-x86_64-20131030.zip,解壓,路徑可以自己配置,還是注意英文路徑,不加空格即可。
接著運行adt-bundle-windows-x86_64-20131030\eclipse下的eclipse(ADT自帶Eclipse編譯環境),選擇工程文件夾,這里可以隨意配置
接著關掉說明頁,進入主界面。在主界面點擊配置SDK
然后可以按照需求選擇Android SDK的版本,這里我選擇下載Android(API 8),然后選擇安裝
慢慢等待下載安裝結束。
接下來配置Android VDM
然后選擇DeviceDefinitions,隨便選擇一個創建,好像是現在的VDM不支持OpenGL的高版本,所以我使會用BlueStacks模擬器來調試,這里只是生成apk
三. 安裝cygwin,配置Android NDK
運行下載好的cygwin-setup-x86_64.exe,看到下列安裝界面
點擊下一步
繼續
默認路徑安裝,然后選擇下載保存的路徑,這個大家可以自己配置,安裝完畢后最好做個備份,免得再次需要安裝時還要下載
默認選擇,下一步
選擇第一個網站
這里注意了,一定要將紅框標出來的點擊一下,變成install
點擊下一步,漫長的等待下載~~~~~~
終于安裝完畢,我們趕緊打開來試試吧
第一次點開cygwin目錄會在c:\cygwin64\home文件下生成以系統登錄賬戶為名字的文件夾
現在,將我們下載下來的Android NDK也就是android-ndk-r9b-windows-x86_64.zip解壓縮至英文路徑下,這個路徑將會在接下來寫入到cygwin的.bash_profile配置文件中,好了,我的解壓路徑為:D:\ android-ndk-r9b
注意:該路徑不能存在空格,全英文
大家在c:\cygwin\home文件下生成的以系統登錄賬戶為名字的文件夾下找到.bash_profile文件,點擊右鍵,用EditPlus軟件打開,在結尾處輸入回車,接著輸入下列語句:
NDK_ROOT="/cygdrive/d/android-ndk-r9d"
export NDK_ROOT
NDK_MODULE_PATH="/cygdrive/d/cocos2d-x-2.2.1:/cygdrive/d/cocos2d-x-2.2.1/cocos2dx/platform/third_party/android/prebuilt"
export NDK_MODULE_PATH
然后點擊保存,關閉。這里的cygwin是指本地磁盤,d是d盤,后面是NDK路徑,大家按照自己的文件路徑填寫,注意windows路徑中“\”和cygwin中“/”的區別。順便提一句,目錄一直要寫到有ndk-build.cmd文件的文件夾。
四. 安裝python,創建自己的cocos2d-x工程
安裝我們已經下載好的python-2.7.6.amd64,選擇默認路徑。
安裝完畢,我們接下來使用python命令創建自己的cocos2d-x工程。
首先需要設置python的系統環境,由于剛才是默認安裝,所以python的安裝路徑為C:\Python27\,大家可以手動在開始->計算機(在上面點右鍵)->屬性->高級系統設置->環境變量中設置path路徑,添加python的安裝目錄。
好了,趕緊試一下我們的配置是否正確吧。在cmd輸入命令:
python -?
然后balabala...出現一堆,這就說明我們的python配置好了。
接下來使用python創建工程。進入cocos2d-x-2.2.1目錄下的tools->project-creator,大家可以看到有一個create_project.py腳本,如果有興趣可以右鍵在IDE中打開來看看,從中可以截取到該腳本的使用方法
好了,我們趕快將這個腳本使用起來吧
先在cocos2d-x-2.2.1目錄下建一個projects文件夾,在project-creator目錄下按住shift+鼠標右鍵,選擇在此處打開命令窗口,輸入命令:
python create_project.py -project HelloWorld -package org.HelloWorld.game -language cpp
然后等待結果
大家可以看到,我們的工程創建完畢了,其中,HelloWorld是我們命令中輸入的工程名,也就是在cocos2d-x-2.2.1->projects文件夾下創建了我們的工程,名字就是HelloWorld,在HelloWorld文件夾下的proj.android文件夾就是我們之后需要編譯的android項目,創建命令后面的org.HelloWorld.game是安卓APK的識別名,大家可以按照“xxx.xxx.xxx”的格式自己命名。
這里我寫了一個bat批處理,大家可以放在project-creator目錄下,以后可以很方便的創建工程。
在project-creator目錄下點右鍵創建一個文本文檔,打開,將以下內容復制進去,然后點保存,更改文件的后綴名為bat即可
-----------------------------------------------------------------------------------------
@echo off
:label1
@cls
echo 歡迎使用Python創建Cocos2d-x工程
set /p project=請輸入需要創建的工程名:
set /p aID=請輸入需要創建的android版本包標識名:
echo 您輸入的工程名為%project%
echo 您輸入的android版本包標識名為%aID%
echo 確認創建工程嗎?
CHOICE /C 123 /M "確認請按 1,取消請按 2,或者退出請按 3。"
echo %errorlevel%
if %errorlevel%==1 goto label2
if %errorlevel%==2 goto label1
if %errorlevel%==3 goto label3
:label2
echo 正在創建工程...
python create_project.py -project %project% -package %aID% -language cpp
:label3
pause
-----------------------------------------------------------------------------------------
五. 在Ecliopse下編譯Android項目
好了,以上我們所有的環境都已搭建完成,在將我們的項目導入eclipse之前,我們還需要將cocos2d-x-2.2.1\cocos2dx\platform\android\java\src下的org文件夾拷貝至我們的項目中,也就是cocos2d-x-2.2.1\projects\HelloWorld\proj.android\src下,由于我們之前創建項目時定的android包名前面也是org,所以會有覆蓋選項,請選擇合并覆蓋即可
接著,回到eclipse環境,導入項目
注意在選擇路徑時寫到HelloWorld文件夾下即可
導入工程后,在工程HelloWorld上點選右鍵,選擇Properties
選擇builders,點擊New
選擇program
然后在接下來的界面中的
name欄輸入:Native_Builder
Location欄輸入:C:\cygwin\bin\bash.exe
Arguments欄輸入:--login -c "cd D:/cocos2d-x-2.2.1/projects/HelloWorld/proj.android && /cygdrive/d/android-ndk-r9b/ndk-build"
以上為一行
選擇OK,選中Native_Builder,并將其調到最上面
然后選擇C/C++ Build->Environment->Add
接下來在Name欄輸入path,在Value欄輸入C:\cygwin\bin
然后在Java Build Path里面選擇Libraries欄,將Android Dependencies以及Android Private Libraries兩個library刪掉
(說明一下,以上我們是將cygwin的編譯環境合并到了Eclipse里,Eclipse利用cygwin并調用cygwin的bash以及make,通過NDK來編譯我們的Android程序,所以每次導入新的工程都要將上述步驟重新配置一下,這點非常重要,如果配置不正確,會導致很多莫名其妙的報錯,最典型的錯誤就是提示找不到bash命令什么的~~~~)
好了,現在我們可以生成APK文件了,在主界面選中自己的工程,然后在命令條上選擇Run->Run as->Android Application
在編譯的過程中,會有各種編譯錯誤的問題,這是我碰到的三個:
please define NDK_ROOT
解決方法:
在工程的proj.android目錄下的build_native.sh中加入
export NDK_ROOT=/cygdrive/e/android-ndk-r9
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
解決辦法:
在該工程的jni文件夾下,創建(若不存在,才創建)一個名為Application.mk的文件,在其內寫一句:
APP_PLATFORM := android-8
編譯成功,但是bin目錄下沒有生成apk文件
解決辦法:
在工程的proj.android目錄下的build_native.sh中加入
chmod 666 -R "$APP_ANDROID_ROOT"/assets
如果以上步驟都按照步驟設定的話,就能夠生成APK了,APK存放在proj.android->bin文件夾下
快將APK裝在自己的真機上進行測試吧!!!!!
以上編譯環境就配置結束了。