之前有兩節介紹了mac下配置Android NDK并搭建Cocos2dX以及如何建立Cocos2d-X-Android項目,那麼可能看過這兩節的童鞋就很多疑問,問的最多的就是如何讓Xcode中的iOS代碼與Eclipse-Android代碼通用?那麼今天Himi就為大家詳細解決這個問題,讓我們隻需在Xcode中編寫代碼,然後編譯後直接導入Android即可運作打包!
廢話不多說了,正題,整合步驟如下:(為了不讓童鞋們混淆,許多檔案的具體修改省略,Himi直接給出檔案)
1. 使用終端建立一個Android-Cocos2dx項目先;具體步驟參照如下博文:
<a href="http://www.himigame.com/android-game/645.html" target="_blank">【iOS-cocos2d-X 遊戲開發之四】Cocos2dX建立Android NDK新項目并編譯導入Eclipse中正常運作!</a>
2.建立好之後,然後Xcode新建立一個Cocos2dX模版的項目(已有Cocos2dX模版項目的省略此步驟)
注意:下面的講解為了避免童鞋們的路徑混淆,那麼這裡Himi說下自己項目的相關路徑和檔案名:
Himi建立的Xcode項目路徑:(項目名稱:OhMonsterMRiOS)
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS
Himi建立的Android項目名稱:(項目名稱:OhMonsterMRAndroid)路徑後面用不到;
3. 拷貝新建立的Android項目下的整個“android”檔案夾,路徑: OhMonsterMRAndroid/android
然後拷貝到 /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS
上面這個路徑就是你Xcode項目下與 ios、libs、Classes同一級别的地方!
注意!這裡隻要新建立的Android項目下名為“android”檔案夾,其他的都不要!!!!
4. 打開你的“終端”,先 cd 到你Xcode的項目下剛拷貝過來的android檔案夾路徑,這裡Himi輸入的指令如下:
cd /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android 回車!
繼續在終端輸入 pico makefile 回車! 然後根據如下圖進行輸入:
<a href="http://www.himigame.com/wp-content/uploads/2012/03/12.png"></a>
這裡要注意:
clean 要頂格不留白格! 兩個 rm 語句前都是 tab 縮進!不要弄錯!
輸入後,control+x 儲存,然後 y ,最後回車! OK!
不要關閉終端,繼續輸入 make clean 回車! 當終端輸出如下提示,表示你正确配置了:
rm -rf libs/
rm -rf obj/
5. 下載下傳如下四個 Android.mk 檔案和一個Application.mk以及一個build_native.sh檔案 ;
下載下傳解壓後你可看到如下幾個檔案,( mk 表示你下載下傳解壓出的mk檔案夾)
android/build_native.sh
android/jni/Android.mk
android/jni/Application.mk
android/jni/helloworld/Android.mk
Classes/Android.mk
libs/cocos2dx/Android.mk
這六個檔案分别放入你Xcode項目如下路徑,這裡使用Himi的項目路徑來說明,大家按照自己項目路徑放入即可!
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/build_native.sh
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/jni/Android.mk
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/jni/Application.mk
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/jni/helloworld/Android.mk
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/Classes/Android.mk
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/libs/cocos2dx/Android.mk
這四個路徑當中如提示檔案已經存在,果斷不用多想,直接覆寫即可!
6. OK,四個檔案放置完成之後,童鞋們需要修改剛才下載下傳中的 build_native.sh 檔案,就是android/build_native.sh檔案!
打開後隻需要修改: NDK_ROOT 路徑即可!别跟我說你的NDK_ROOT路徑你不知道 =。 =不知道的童鞋請自動面壁~開玩笑拉,不知道的童鞋可以參考之前我介紹如何配置Android SDK 的博文哦~
7. 最後一步了,拷貝兩個檔案就大功告成了!
首先到你存放Cocos2dX引擎目錄路徑下(如有看過之前文章,其實就是$COCOS2DX_ROOT路徑),
然後找到CocosDenshion檔案夾下的“android”檔案夾,然後拷貝整個“android”檔案夾到你Xcode項目下libs/CocosDenshion下,Himi的路徑如下:
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/libs/CocosDenshion
最後找到存放Cocos2dX引擎目錄路徑下的cocos2dx下的“platform”檔案夾,将整個“platform”檔案夾拷貝到你Xcode項目下libs/cocos2dx 下,Himi的路徑如下:
/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/libs/cocos2dx
——(此步驟為加入cocos2dx-box2d步驟,如果不使用box2d請童鞋省略此步驟)——
(此步驟為加入cocos2dx-box2d步驟,如果不使用box2d請童鞋省略此步驟)從Cocos2dX引擎目錄路徑下/Box2D/拷貝Android.mk到Xcode項目下/libs/Box2D/下面去。
—————————————————————————————————————
8. 打開你的“終端”,先 cd 到你Xcode的項目下剛拷貝過來的android檔案夾路徑,這裡Himi輸入的指令如下:
繼續輸入 make clean 回車!
繼續輸入 ./build_native.sh 回車!
如果之前的步驟都沒有出現任何問題,OK,終端會輸出一大堆的資訊,最後顯示如下類似内容!
OK,到此證明之前的配置正确完成!如果出現了 …stop類似的資訊,說明其中有些地方配置出現問題!
别着急,還沒結束!最後說二點:
一. 你拷貝到Xcode項目中的android相關檔案等沒必要導入你的Xcode中,如果導入反而讓你的Xcode項目編譯錯誤無法運作!
二. 當你以後在Xcode添加了一些類,那麼你需要到 Classes/Android.mk 修改一下,将你新添加的類添加進去,如下圖所示:
<a href="http://www.himigame.com/wp-content/uploads/2012/03/4321.png"></a>
注意:新添加的類在其他類中“include”使用的時候一定要将檔案的路徑全部寫完整,例如新添加有個類 StaticClassModel.cpp StaticClassModel.h 放在dev檔案夾下,那麼:
其他類中使用時: #include “dev/StaticClassModel.h”
在classes檔案下 Android.mk中,也一樣寫完整路徑:dev/StaticClassModel.cpp
否則編譯android時會找不到,而且提醒如下錯誤:
Compile++ thumb : game_logic_static <= AppDelegate.cpp
Compile++ thumb : game_logic_static <= HelloWorldScene.cpp
jni/../../Classes/HelloWorldScene.cpp:3:30: error: StaticClassModel.h: No such file or directory
jni/../../Classes/HelloWorldScene.cpp: In member function 'virtual bool HelloWorld::init()':
jni/../../Classes/HelloWorldScene.cpp:56: error: 'StaticClassModel' has not been declared
make: *** [obj/local/armeabi/objs-debug/game_logic_static/HelloWorldScene.o] Error 1
Classes/Android.mk中找到:
LOCAL_SHARED_LIBRARIES := cocosdenshion_shared
在下面繼續添加一句:
LOCAL_SHARED_LIBRARIES += box2d_shared
對了忘記說如何導入到Eclipse中了!這裡将Xcode項目導入Eclipse中很容易:
一: 第一次将Xcode中的Android項目導入到Eclipse中,要先build!
打開你的“終端”,先 cd 到你Xcode的項目下剛拷貝過來的android檔案夾路徑,這裡Himi輸入的指令如下:
二:Eclipse直接将你Xcode下的“android”路徑直接導入你Eclipse中即可!
備注:不僅僅第一次将Xcode中項目導入Eclipse中需要編譯,以後隻要在Xcode中有代碼修改和添加都記得要build!然後eclipse Clean下運作項目就OK拉!
下面是Himi配置之後在Xcode以及Eclipse下運作的iOS和Android截圖:
<a href="http://www.himigame.com/wp-content/uploads/2012/03/111111.png"></a>
<a href="http://www.himigame.com/wp-content/uploads/2012/03/222222.png"></a>
本文轉自 xiaominghimi 51CTO部落格,原文連結:http://blog.51cto.com/xiaominghimi/826616,如需轉載請自行聯系原作者