標籤:android style class blog c java
聲明:本教程在參考了以下博文,並經過自己的摸索後實際操作得出,本教程系本人原創,由於升級後的cocos2d-x有了一些變化,目前的博文還沒有關於Cocos2d-x 2.2.1最新版搭建Android交叉編譯環境組建的說明,所以我這幾天研究了一下,現在將具體的搭建方法分享出來,也給自己學習Cocos2d-x做個筆記。 參考博文: http://www.cnblogs.com/lhming/archive/2012/06/27/2566460.html
http://www.cnblogs.com/lhming/archive/2012/06/27/2566467.html
http://www.douban.com/note/229610750/
http://www.cnblogs.com/dekins/archive/2012/08/22/2650131.html 本文地址: http://blog.csdn.net/sttyytw/article/details/17005263 如果轉載,請註明出處! 本文搭建環境 系統:win7 64位 旗艦版 原版
軟體:只裝了系統的半裸機
大家只要按照步驟耐心操作,環境的搭建就不會產生一些莫名其妙的錯誤
預備下載的軟體(為了方便,軟體安裝包請放在一個檔案夾下)
請大家先行下載,但不要安裝,一步一步的來
1、cocos2d-x2.2.1 2013年11月19日更新
cocos2d-x遊戲引擎開發環境,大家都懂的
:(這個不用說了吧,搭建cocos2d-x的平台會不知道哪裡下代碼?好吧,還是貼上)
http://www.cocos2d-x.org/download
2、VisualStudio 2012
cocos2d-x需要的IDE編譯環境,網上隨便下,這裡提供一個
:http://pan.baidu.com/share/link?shareid=90168&uk=2769186556
密鑰:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC
3、python
cocos2d-x2.0版本以後用python指令碼來建立工程,所以需要python環境
:http://www.python.org/download/
注意:請下載python2.7.6 64位版本,不要下3.3的版本
以上是組建cocos2d-x編譯環境所需要的軟體,接下來是android交叉編譯所需要的軟體
4、java
java環境是必須的,這個在官網上下載即可,注意要選擇64位版本
:http://www.java.com/zh_CN/download/manual.jsp
5、Android SDK
這個是android交叉編譯必須的IDE環境,內含Eclipse
:http://developer.android.com/sdk/index.html
6、Android NDK
android交叉編譯時間,對C/C++代碼的解釋編譯工具
:http://developer.android.com/tools/sdk/ndk/index.html
7、cygwin
對cocos2d-x本地C/C++代碼的解釋編譯工具
:http://cygwin.com/install.html
8、EditPlus
這是個文本編輯軟體,方便我們對之後的sh檔案進行編輯
:http://www.pc6.com/softview/SoftView_36775.html
注意:sh等linux檔案在用windows記事本開啟時,輸入的斷行符號格式與linux斷行符號格式不同,會造成錯誤。
這個軟體是推薦大家使用的,大家可以自行選擇
至此我們所需要的軟體都已經準備完畢,接下來可以開始正式搭建環境了
———————————————————————————————————
1、安裝VisualStudio2012
對VS2012_ULT_chs.iso檔案進行解壓,安裝,對安裝程式一路狂點。。。。。
像這種編程環境最好裝在系統硬碟內,免得之後出各種莫名其妙的錯誤。等了一段時間,終於安裝完畢。
2、用VisualStudio組建cocos2d-x的Windows編譯環境
將下載好的cocos2d-x-2.2.1放在英文路徑下,注意,英文路徑不要有空格
例如:我的目錄配置D:\study\cocos2d-x\cocos2d-x-2.2.1
在cocos2d-x-2.2.1目錄下找到Visual Studio2012的sln檔案,開啟
等待Visual Studio載入解決方案
在解決方案上點右鍵,然後點產生解決方案,或者按F7,等待vs編譯產生本地obj
第一次編譯會比較慢,耐心等待一下
等了將近10分鐘,終於編譯好了,我們來嘗嘗鮮,試著運行HelloCpp,看到那個熟悉的HelloWorld介面
在HelloCpp項目上面點擊右鍵,然後選擇調試->啟動新執行個體
接著程式開始自動編譯了,運氣好的話應該可以看到牛X的HelloWorld的介面了
在這裡我遇到了一個小問題,由於是新系統,還沒有安裝顯卡驅動,所以編譯時間提示OpenGL的版本太低,這時候只需要用驅動精靈或是類似的驅動軟體更新一下自己的顯卡驅動就沒有問題了。
3、建立自己的HelloWorld工程
接下來就要建立自己的Cocos2d-x HelloWorld項目,這是所有遊戲編寫的開端。好的,這時我們就要用到python環境了。安裝我們已經下載好的python-2.7.6.amd64,選擇預設路徑。
安裝完畢,我們接下來使用python命令建立自己的cocos2d-x工程。
首先需要設定python的系統內容,由於剛才是預設安裝,所以python的安裝路徑為C:\Python27\,大家可以手動在開始->電腦(在上面點右鍵)->屬性->進階系統設定->環境變數中設定path路徑,添加python的安裝目錄,不過我個人比較喜歡用cmd的wmic命令改變環境變數。(順便提一句,大家可以用一個批處理將本文所有涉及環境變數的設定都用wmic命令寫入。)
好了,win+R運行cmd,輸入下列命令
wmic ENVIRONMENT where "name=‘path‘ and username=‘<system>‘" set VariableValue="%path%;C:\Python27"
注意以上命名為一行
然後重新開啟cmd,輸入python,結果發現python不是內部命令,再輸入命令:
echo %path%
發現沒有剛才我們設定的python目錄,怎麼回事?其實這裡是環境變數沒有更新的緣故,大家再設定完後,還是要進入開始->電腦(在上面點右鍵)->屬性->進階系統設定->環境變數,然後什麼都不用改,直接點確定,再回來cmd查看path目錄,這才發現已經出現我們設定的python目錄了。有的童鞋肯定會問,既然還是要進入環境變數設定介面,我幹嘛不直接在裡面設定不就行了嗎,還要這麼麻煩幹什嗎?這樣最為直接。
但是我是不喜歡path那一長條的輸入框,拖過來拖過去的,而且分號什麼的路徑寫入容易出錯,所以建議大家還是多採取命令的形式比較好一點。
好了,趕緊試一下我們的配置是否正確吧。輸入命令:
python -?
然後balabala...出現一堆,這就說明我們的python配置好了。
接下來使用python建立工程。進入cocos2d-x-2.2.1目錄下的tools->project-creator,大家可以看到有一個create_project.py指令碼,如果有興趣的童鞋可以右鍵在IDE中開啟來看看,從中可以截取到該指令碼的使用方法
好了,我們趕快將這個指令碼使用起來吧
在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
-----------------------------------------------------------------------------------------
注意只需複製以上紫色部分。
回到Visual Studio2012,在解決方案上點擊右鍵,點添加->現有項目
然後在這個目錄(cocos2d-x-2.2.1\projects\HelloWorld\proj.win32)下找到HelloWorld.vcxproj
點擊開啟
可以看到我們的HeloWorld已經添加進我們的工程中了。好了,還等什麼,編譯一下吧。這裡提一句,我們可以將HelloWorld設定為啟動項目,這樣每次調試的時候就可以方便的點擊“本地Windows調試器”進行調試,而不是每次都得啟動新執行個體。在HelloWorld上點右鍵,可以找到“設為啟動項目”這一欄。
設定完成後我們會發現我們的HelloWorld加粗了,好了,運行一下試試
點本地Windows調試器,快顯視窗,選擇不再顯示此對話方塊,然後點是
等待編譯,然後就會輸出HelloWorld視窗了,這次是“小瓶”的,呵呵!
好了,以上我們已經將自己的工程建立好了!
接下來要來配置cocos2d-x在win7下的android交叉編譯環境
4、安裝java,設定java環境
android環境的搭建少不了java這玩意,選擇預設路徑安裝好後便可以用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不是內部命令或外部命令”之類的,就表示你設定成功了。
5、安裝cygwin與配置Android NDK
運行下載好的cygwin-setup-x86_64.exe,看到下列安裝介面
點擊下一步
繼續
預設路徑安裝,然後選擇下載儲存的路徑,這個大家可以自己配置,安裝完畢後最好做個備份,免得再次需要安裝時還要下載,國內的網速下載還是比較蛋疼的~~~~~
預設選擇,下一步
選擇第一個網站
這裡大家注意了,一定要將紅框標出來的點擊一下,變成install
點擊下一步,漫長的等待下載~~~~~~
終於安裝完畢,我們趕緊開啟來試試吧
第一次點開cygwin目錄會在c:\cygwin64\home檔案下產生以系統登入賬戶為名字的檔案夾
然後在我們下載的軟體裡找到Editplus軟體,預設安裝後就可以將任何文字檔以Editplus軟體開啟
現在,將我們下載下來的Android NDK也就是android-ndk-r9b-windows-x86_64.zip解壓縮至英文路徑下,這個路徑將會在接下來寫入到cygwin的.bash_profile設定檔中,好了,我的解壓路徑為:D:\study\android\IDE\
注意:該路徑不能存在空格,全英文
大家在c:\cygwin64\home檔案下產生的以系統登入賬戶為名字的檔案夾下找到.bash_profile檔案,點擊右鍵,用EditPlus軟體開啟,在結尾處輸入斷行符號,接著輸入下列語句:
NDK_ROOT=/cygdrive/d/study/android/IDE/android-ndk-r9b
export NDK_ROOT
以上為兩行
然後點擊儲存,關閉。這裡的cygwin是指本地磁碟,d是d盤,後面是NDK路徑,大家按照自己的檔案路徑填寫,注意windows路徑中“\”和cygwin中“/”的區別。順便提一句,目錄一直要寫到有ndk-build.cmd檔案的檔案夾。
接著用EditPlus開啟C:\cygwin64\etc檔案夾下的bash.bashrc檔案,在結尾處輸入斷行符號,輸入自己的cocos2d-x工程的檔案夾路徑(還記得我們之前建立的HelloWorld工程嗎?),注意,這一步不是必要的,完成的功能是在每次開啟cygwin的時候不用去輸入完整路徑跳轉至你的工程檔案夾下。好了,我的路徑配置為:
cd d:/study/cocos2d-x/cocos2d-x-2.2.1/projects/HelloWorld/proj.android
以上為一行
大家可以根據自己的路徑改變,以後建立工程時也要記得改變自己的編譯路徑。還是要提醒大家注意windows路徑中“\”和cygwin中“/”的區別。
重啟cygwin,大家可以發現當前路徑已經變成了我們設定的路徑了
好了,輸入ls命令,會發現一個build_native.sh的檔案,這就是我們需要用NDK編譯的檔案了
接著輸入以下命令:
./build_native.sh
以上為一行
如果順利的話(仔細按照步驟來的話是沒有什麼問題的),就可以看到我們的NDK開始辛勤的編譯cocos2d-x的一些本地C++代碼了~~~~~又是漫長的等待。
編譯完成後就可以退出cygwin了
這是完成後的最後介面的,如果你能看到這個介面的話就代表本步驟順利完成。
6、安裝Android SDK,配置Android的Eclipse編譯環境
找到我們下載的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
7、編譯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:\cygwin64\bin\bash.exe
Arguments欄輸入:--login -c "cd /cygdrive/d/study/android/IDE/android-ndk-r9b && make APP=HelloWorld"
以上為一行
Arguments欄中,login前有兩個"-"符號,中間的目錄設定參考前面教程中對NDK_ROOT的路徑設定,後面的HelloWorld為建立的工程名,這個根據自己建立的工程名設定。
(提示:如果不是按照預設路徑安裝的,請選擇Browse File System,找到相關的路徑)
選擇OK,選中Native_Builder,並將其調到最上面
然後選擇C/C++ Build->Environment->Add
接下來在Name欄輸入path,在Value欄輸入C:\cygwin64\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
如果以上步驟都按照教程設定的話,就能夠產生APK了,APK存放在proj.android->bin檔案夾下
快將APK裝在自己的真機上進行測試吧!!!!!
以上編譯環境就配置結束了。
——————————————————————————————————
深入討論問題:每次在編譯Android項目之前是不是都要將cocos2d-x-2.2.1\cocos2dx\platform\android\java\src下的org檔案夾拷貝至我們的項目中呢?
其實不然,大家可以發現,每次我們執行./build_native.sh時,proj.android檔案夾中的Resource裡面的內容都會複製到assets檔案夾中,所以我們可以稍微修改一下sh檔案就可以免去每次建立項目的時候都要拷貝一遍本地編譯庫的操作
方法:
1、在C:\cygwin64\home\“自己的使用者名稱”\檔案夾下找到.bash_profile
2、用EditPlus開啟編輯
3、在檔案末尾輸入斷行符號,加入以下路徑設定
COCOS2DX_DIR=/cygdrive/d/study/cocos2d-x/cocos2d-x-2.2.1
export COCOS2DX_DIR
以上為兩行
然後在\cocos2d-x-2.2.1\template\multi-platform-cpp\proj.android目錄下找到原生的build_native.sh,我們用EditPlus開啟對它進行修改
在36行找到這句話,這句話是對NDK_ROOT的路徑進行判斷
我們在後面加入一樣的語句,只是將NDK_ROOT替換為我們設定的目錄,也就是COCOS2DX_DIR
然後再繼續向後翻,在50行這裡加入
echo "COCOS2DX_DIR = $COCOS2DX_DIR"
接著在後面我們發現了這樣的語句
嘿嘿!!!!大家看出來了吧,這句話就相當於複製檔案了,好了,我們依葫蘆畫瓢吧~~~~
也就是在後面加上如下語句:
for file in "$COCOS2DX_DIR"/cocos2dx/platform/android/java/src/*
do
if [ -d "$file" ]; then
cp -rf "$file" "$APP_ANDROID_ROOT"/src
fi
if [ -f "$file" ]; then
cp "$file" "$APP_ANDROID_ROOT"/src
fi
done
OK,檔案修改完畢,大家記得儲存哦!
這樣修改了之後,在大家重新建立工程時,cocos2d-x的python指令碼就會將template\multi-platform-cpp檔案夾下的內容稍加修改(主要是項目名稱的修改)後直接複製到我們的工程裡,這樣我們修改後的檔案就可以使用了,哈哈!
———————————————————————————————————
教程到此就結束了,如果大家對本教程有任何問題,或者有什麼錯誤之處,敬請大家指出!