前言:話說我真的是一個比較磨嘰的人,今天上來看到有人評論說我這麼磨嘰顯得很不專業。首先還是很開心能有人來看我那麼久之前寫的東西,現在看來真的是很稚嫩,當然就現在來講也沒成熟多少。其次,我也覺得我非常不專業,混了這麼久還是這德行,唉……言歸正傳,開個文章記錄下在Win32上做Android基於Cocos2dx的開發遇到的問題。現在只是編譯了個內建的例子,所以離得還是很遠呢。
運行環境和程式
| 應用程式名稱 |
版本 |
| 作業系統 |
Win7 旗艦版SP1 |
| cocos2dx |
cocos2d-2.1rc0-x-2.1.2 |
| eclipse |
3.7.2 |
| ADT |
Build: v21.1.0-569685 |
| NDK |
r8e |
| cygwin版本 |
1.7.18-14 |
| Visual Studio |
2010 |
以上就是我機器上的運行環境,現在的Android開發環境已經提供一個整包來供開發人員下載安裝,已經內建CDT以及一些其他的種種外掛程式工具。我這裡還是使用cygwin來輔助NDK編輯C++代碼。目前已經有使用eclipse編譯的方法,這個大家請自行google,不在我這文章的討論範圍。
問題列表1.如何建立Android程式
- 執行cocos2dx根目錄下的create-android-project.bat檔案即可,這裡需要修改對應檔案內的cygwin目錄Android SDK目錄以及NDK目錄為你機器上的檔案夾目錄。
- cygwin上最好有NDK_ROOT匯出,修改.bash_profile,最後增加兩行代碼(不要全抄,根據自己的目錄修改):
NDK_ROOT=/cygdrive/d/NDKexport NDK_ROOT
2.如何編譯在建立完Andorid項目後,在cygwin中,進入建立的項目的proj.android檔案夾中,執行 ./build_native.sh 命令,坐等編譯完成,最後會輸出libgame.so檔案。特別注意,如果在cygwin中定義了到cocos2dx原始碼的軟串連的話,可能會編譯通不過,各種標頭檔無法找到,這時候請進入實際目錄後再執行build_native.sh命令,否則由於目錄層級關係導致找不到標頭檔的問題。3.Eclipse中報 AndroidManifest.xml 檔案 @drawable/icon 的錯誤這個由於是在proj.android目錄下res目錄中沒有對應的icon.png檔案造成。如果是選擇4.0以後的版本,那對應的資源是由ADT負責的,原本是android.bat從samples中的hellocpp中拷貝,所以圖片會變成andorid機器人的樣子,並且命名為ic_launcher.png,所以會報錯。選擇2.3.3之類的就不會有這個問題了。具體可以參見template/andorid/copy_file.sh中的指令碼代碼:
# android.bat of android 4.0 don't create res/drawable-hdpi res/drawable-ldpi and res/drawable-mdpi.# These work are done in ADTcopy_icon(){ if [ ! -d $APP_DIR/proj.android/res/drawable-hdpi ]; then cp -r $HELLOWORLD_ROOT/proj.android/res/drawable-hdpi $APP_DIR/proj.android/res cp -r $HELLOWORLD_ROOT/proj.android/res/drawable-ldpi $APP_DIR/proj.android/res cp -r $HELLOWORLD_ROOT/proj.android/res/drawable-mdpi $APP_DIR/proj.android/res fi}參考和文獻
- 移植Win32程式到Android下可以參考此篇文章:http://4137613.blog.51cto.com/4127613/758783
- 環境搭建可以參考這篇文章:http://4137613.blog.51cto.com/4127613/758783