本站文章均為[?李華明Himi?](http://www.himigame.com/about-himi)原創,轉載務必在明顯處注明:
轉載自[【黑米GameDev街區】](http://www.himigame.com/)?原文鏈接:?[http://www.himigame.com/android-game/667.html](http://www.himigame.com/android-game/667.html "【iOS-cocos2d-X")
此篇針對較早的-x引擎講解的,最新的可以參考:[?【Cocos2d-X(2.x) 游戲開發系列之二】cocos2dx最新2.0.1版本跨平臺整合NDK+Xcode,Xcode編寫&編譯代碼,Android導入打包運行即可!](http://www.himigame.com/cocos2dx-v2-0/962.html)
之前有兩節介紹了mac下配置Android NDK并搭建Cocos2dX以及如何創建Cocos2d-X-Android項目,那么可能看過這兩節的童鞋就很多疑問,問的最多的就是如何讓Xcode中的iOS代碼與Eclipse-Android代碼通用?那么今天Himi就為大家詳細解決這個問題,讓我們只需在Xcode中編寫代碼,然后編譯后直接導入Android即可運行打包!
廢話不多說了,正題,整合步驟如下:(為了不讓童鞋們混淆,許多文件的具體修改省略,Himi直接給出文件)
1.使用終端創建一個Android-Cocos2dx項目先;具體步驟參照如下博文:
[【iOS-cocos2d-X 游戲開發之四】Cocos2dX創建Android NDK新項目并編譯導入Eclipse中正常運行!](http://www.himigame.com/android-game/645.html)
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 ? 回車! 然后根據如下圖進行輸入:
[](http://www.himigame.com/wp-content/uploads/2012/03/12.png)
這里要注意:
clean 要頂格不留空格! ? ?兩個 rm 語句前都是 ?tab 縮進!不要弄錯!
輸入后,control+x ?保存,然后 ?y ?,最后回車! ?OK!
不要關閉終端,繼續輸入 ??make clean ? 回車! 當終端輸出如下提示,表示你正確配置了:
~~~
rm -rf libs/
rm -rf obj/
~~~
5.下載如下四個 Android.mk 文件和一個Application.mk以及一個build_native.sh文件 ;
[mk.rar](http://www.himigame.com/?dl_id=69)?(126 字節, 9 次)
下載解壓后你可看到如下幾個文件,( 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
~~~
這四個路徑當中如提示文件已經存在,果斷不用多想,直接覆蓋即可!
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輸入的命令如下:
cd?/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android ? ?回車!
繼續輸入 ??make clean ?回車!
繼續輸入 ?./build_native.sh ?回車!
如果之前的步驟都沒有出現任何問題,OK,終端會輸出一大堆的信息,最后顯示如下類似內容!
~~~
Install : libcocosdenshion.so => libs/armeabi/libcocosdenshion.so
Compile++ thumb : game_logic_static <= HelloWorldScene.cpp
StaticLibrary : libgame_logic_static.a
SharedLibrary : libgame.so
Install : libgame.so => libs/armeabi/libgame.so
~~~
OK,到此證明之前的配置正確完成!如果出現了 …stop類似的信息,說明其中有些地方配置出現問題!
別著急,還沒結束!最后說二點:
一. 你拷貝到Xcode項目中的android相關文件等沒必要導入你的Xcode中,如果導入反而讓你的Xcode項目編譯錯誤無法運行!
二. 當你以后在Xcode添加了一些類,那么你需要到 ?Classes/Android.mk ?修改一下,將你新添加的類添加進去,如下圖所示:
[](http://www.himigame.com/wp-content/uploads/2012/03/4321.png)
注意:新添加的類在其他類中“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
~~~
——(此步驟為加入cocos2dx-box2d步驟,如果不使用box2d請童鞋省略此步驟)——
Classes/Android.mk中找到:
LOCAL_SHARED_LIBRARIES := cocosdenshion_shared
在下面繼續添加一句:
LOCAL_SHARED_LIBRARIES += box2d_shared
對了忘記說如何導入到Eclipse中了!這里將Xcode項目導入Eclipse中很容易:
一: 第一次將Xcode中的Android項目導入到Eclipse中,要先build!
打開你的“終端”,先 cd 到你Xcode的項目下剛拷貝過來的android文件夾路徑,這里Himi輸入的命令如下:
cd?/Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android ? ?回車!
繼續輸入 ??make clean ?回車!
繼續輸入 ?./build_native.sh ?回車!
二:Eclipse直接將你Xcode下的“android”路徑直接導入你Eclipse中即可!
備注:不僅僅第一次將Xcode中項目導入Eclipse中需要編譯,以后只要在Xcode中有代碼修改和添加都記得要build!然后eclipse ?Clean下運行項目就OK拉!
下面是Himi配置之后在Xcode以及Eclipse下運行的iOS和Android截圖:
[](http://www.himigame.com/wp-content/uploads/2012/03/111111.png)
?
[](http://www.himigame.com/wp-content/uploads/2012/03/222222.png)
- 前言
- 【Iphone 游戲開發】游戲引擎剖析
- [Object-C語言隨筆之一]Mac os 下搭建iOS開發環境
- [Object-C語言隨筆之二] 《NSLog》常用的打印調試語句與自動排版
- [Object-C語言隨筆之三] 類的創建和實例化以及函數的添加和調用!
- [Object-C語言隨筆之四]創建視圖并繪制簡單圖形
- 【iOS-Cocos2d游戲開發之一】搭建cocos2d游戲引擎環境HelloWorld!
- 【iOS-Cocos2d游戲開發之二】Cocos2D 游戲開發資源貼(教程以及源碼)
- 【iOS-Cocos2d游戲開發之三】CCScene切換的所有特效(28種)以及設置屏幕橫豎屏!
- 【iOS-Cocos2d游戲開發之四】獨自收集Cocos2d提供的字體!共57種(有對照的字體圖)
- 【iOS-Cocos2d游戲開發之五】多觸點與觸屏事件詳解(單一監聽、事件分發)【11月28日更新】
- 【iOS-Cocos2d游戲開發之六】對觸屏事件追加講解,解決無法觸發ccTouchMoved事件[重要!]
- 【iOS-Cocos2d游戲開發之七】在cocos2d中添加/刪除系統組件,并解決View設置透明會影響View中的其他組件的問題!【11月28日更新解決添加組件Cocos2d動畫停止播放的BUG】
- 【iOS-Cocos2d游戲開發之八】開啟高清(960*640)模式問題與解答、圖片適配以及設置iphone橫豎屏
- 【iOS-Cocos2d游戲開發之九】講解CCSpriteBatchNode與TP工具的&quot;.pvr.ccz&quot;,&quot;.plist&quot;共用的終極精靈優化及注意事項!
- 【iOS-Cocos2d游戲開發之十】添加粒子系統特效并解決粒子特效與Layer之間的坐標問題;
- 【iOS-Cocos2d游戲開發之十一】使用Box2d物理系統以及在cocos2d框架添加Box2d物理系統lib包的方法
- 【iOS-Cocos2d游戲開發之十二】淺析使用C++/C/OC進行iOS游戲混編出現“failed with exit”問題與小結;
- 【iOS-Cocos2d游戲開發之十三】CCSprite利用Bezier(貝塞爾)做拋物線動作并讓CCSprite同時播放兩個Action動作!
- 【iOS-Cocos2d游戲開發之十四】音頻/音效/視頻播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d進行視頻播放!)
- 【iOS-Cocos2d游戲開發之十五】詳解CCProgressTimer 進度條并修改cocos2d源碼實現“理想”游戲進度條!
- 【iOS-Cocos2d游戲開發之十六】添加本地通知(UILocalNotification)以及添加系統組件滾動視圖(UIScrollView)!【2011年11月15日更新】
- 【iOS-Cocos2d游戲開發之十七】靈活使用精靈可視區域(TextureRect)與錨點(anchorPoint),并結合可視區域與錨點制作進度條!
- 【iOS開發必備指南合集】申請企業級IDP、真機調試、游戲接入GameCenter 指南(實現仿官方的成就提示)、游戲接入OpenFeint指南;
- 【iOS-Cocos2d游戲開發之十八】解決滾屏背景/拼接地圖有黑邊(縫隙)/動畫播放出現毛邊以及禁止游戲中自動鎖屏問題!【2011年12月18日補充】
- 【iOS開發必收藏】詳解iOS應用程序內使用IAP/StoreKit付費、沙盒(SandBox)測試、創建測試賬號流程!【2012-12-11日更新獲取&quot;產品付費數量等于0的問題&quot;】
- 【iOS-cocos2d-X 游戲開發之一】在Mac下結合Xcode搭建Cocos2d-X開發環境!
- 【iOS-cocos2d-X 游戲開發之二】【必看篇】總結闡述Cocos2d-X與Cocos2d-iphone區別;
- 【iOS-Cocos2d游戲開發之十九】游戲數據存儲的四種常用方式NSKeyedArchiver/NSUserDefaults/Write寫入/SQLite3
- 【iOS-Cocos2d游戲開發之二十】精靈的基礎知識點總匯(位圖操作/貼圖更換/重排z軸等)以及利用CCSprite與CCLayerColor制作簡單遮蓋層!
- 【iOS-Cocos2d游戲開發之二十一 】自定義精靈類并為你的精靈設置攻擊幀(指定開始幀)以及擴展Cocos2d源碼的CCAnimation簡化動畫創建!
- 【iOS-Cocos2d游戲開發之二十二 】CCSpeed實現CCAnimate動畫進行時設置慢動作以及設置游戲加減速進行(塔防游戲必備)!
- 【iOS-cocos2d-X 游戲開發之三】Mac下配置Android NDK環境并搭建Cocos2d-x環境并Eclipse正常編譯運行Cocos2dX自帶TestsDemo項目!
- 【iOS-cocos2d-X 游戲開發之四】Cocos2dX創建Android NDK新項目并編譯導入Eclipse中正常運行!
- 【iOS-cocos2d-X 游戲開發之五】游戲存儲之Cocos2dX自帶CCUserDefault類詳解;
- 【iOS-cocos2d-X 游戲開發之六】使用Base64算法對Cocos2dX自帶CCUserDefault游戲存儲數據編碼!
- 【iOS-cocos2d-X 游戲開發之七】整合Cocos2dX的Android項目到Xcode項目中,Xcode編寫&amp;編譯代碼,Android導入打包運行即可!
- 【iOS-iap防護】驗證用戶付費收據!拒絕iap Cracker!拒絕iap Free!讓iphone越獄用戶無從下手!【2012年5月2日更新防護iap Free的方法】
- 【COCOS2DX-LUA 腳本開發之一】在Cocos2dX游戲中使用Lua腳本進行游戲開發(基礎篇)并介紹腳本在游戲中詳細用途!
- 【iOS-cocos2d-X 游戲開發之九】Cocos2dx利用CCSAXParser解析xml數據&amp;CCMutableDictionary使用與注意!
- 【iOS-cocos2d-X 游戲開發之十】自定義CCSprite/Layer/CCNode及靜態類模版&amp;自定義類細節說明&amp;Cocos2dx觸屏事件講解
- 【iOS-cocos2d-X 游戲開發之十一】New CCSprite()帶來的錯誤&amp;使用CCUserDefault及pvr.ccz在Cocos2dx中要注意!
- 【iOS-cocos2d-X 游戲開發之十二】自定義Cocos2dx搖桿(增強Joystick),增加搖桿跟隨用戶觸點作為搖桿坐標,讓搖桿不再死板!
- 【iOS-cocos2d-X 游戲開發之十三】詳細講解在Xcode中利用預編譯并通過Jni調用Android的Java層代碼(cocos2dx里訪問調用Android函數)!
- 【iOS-cocos2d-X 游戲開發之十四】Xcode中c++&amp;Object-C混編,詳細介紹如何在cocos2dx中訪問object函數以及Apple Api
- 【iOS-cocos2d-X 游戲開發之十五】Cocos2dx中響應Android的Back(返回)與Menu(小房子)事件&amp;&amp;Cocos2dx自動釋放粒子內存函數!
- 【iOS-cocos2d-X 游戲開發之十六】配置你的Cocos2dx項目編譯后的Android自動使用(-hd)高清圖&amp;設置Android自適應屏幕、縮放比例方法!
- 【Cocoa(mac) Application 開發系列之四】動作編輯器(Cocos2dx)制作流程詳解及附上響應鼠標滾軸事件、反轉坐標系、導入/創建資源目錄等知識點代碼!
- 【Cocos2d-X(2.x) 游戲開發系列之一】cocos2dx(v2.x)與(v1.x)的一些常用函數區別講解!在2.x版CCFileData類被去除等
- 【Cocos2d-X(2.x) 游戲開發系列之二】cocos2dx最新2.0.1版本跨平臺整合NDK+Xcode,Xcode編寫&amp;編譯代碼,Android導入打包運行即可!
- 【Cocos2dX(2.x)_Lua開發之三】★重要必看篇★在Lua中使用自定義精靈(Lua腳本與自創建類之間的訪問)及Lua基礎講解
- 【Cocos2d-X(2.x) 游戲開發系列之三】最新版本cocos2d&#173;2.0&#173;x&#173;2.0.2使用新資源加載策略!不再沿用-hd、-ipad、-ipadhd添加后綴方式
- 【Cocos2d-X(1.x 2.x) 修復篇】iOS6 中 libcurl.a 無法通過armv7s編譯以及iOS6中無法正常游戲橫屏的解決方法
- 【Cocos2d-X(1.x 2.x) 】iOS6與iphone5適相關設置隨筆(解決第三方類庫無法通過armv7s編譯的方法、添加Default-568h@2x.png)