天天看點

【IOS-COCOS2D-X 遊戲開發之七】整合COCOS2DX的ANDROID項目到XCODE項目中,XCODE編寫&編譯代碼,ANDROID導入打包運作即可!

之前有兩節介紹了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   回車! 然後根據如下圖進行輸入:

【IOS-COCOS2D-X 遊戲開發之七】整合COCOS2DX的ANDROID項目到XCODE項目中,XCODE編寫&amp;編譯代碼,ANDROID導入打包運作即可!

這裡要注意:

clean 要頂格不留白格!    兩個 rm 語句前都是  tab 縮進!不要弄錯!

輸入後,control+x  儲存,然後  y  ,最後回車!  ok!

不要關閉終端,繼續輸入   make clean   回車!  當終端輸出如下提示,表示你正确配置了:

1

2

rm -rf libs/

rm -rf obj/

5.  下載下傳如下四個 android.mk 檔案和一個application.mk以及一個build_native.sh檔案 ;

下載下傳解壓後你可看到如下幾個檔案,( mk 表示你下載下傳解壓出的mk檔案夾)

3

4

5

6

7

8

9

10

11

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,終端會輸出一大堆的資訊,最後顯示如下類似内容!

install        : libcocosdenshion.so =&amp;gt; libs/armeabi/libcocosdenshion.so

compile++ thumb  : game_logic_static &amp;lt;= helloworldscene.cpp

staticlibrary  : libgame_logic_static.a

sharedlibrary  : libgame.so

install        : libgame.so =&amp;gt; libs/armeabi/libgame.so

ok,到此證明之前的配置正确完成!如果出現了 …stop類似的資訊,說明其中有些地方配置出現問題!

别着急,還沒結束!最後說二點:

一. 你拷貝到xcode項目中的android相關檔案等沒必要導入你的xcode中,如果導入反而讓你的xcode項目編譯錯誤無法運作!

二. 當你以後在xcode添加了一些類,那麼你需要到  classes/android.mk  修改一下,将你新添加的類添加進去,如下圖所示:

【IOS-COCOS2D-X 遊戲開發之七】整合COCOS2DX的ANDROID項目到XCODE項目中,XCODE編寫&amp;編譯代碼,ANDROID導入打包運作即可!

注意:新添加的類在其他類中“include”使用的時候一定要将檔案的路徑全部寫完整,例如新添加有個類 staticclassmodel.cpp       staticclassmodel.h  放在dev檔案夾下,那麼:

其他類中使用時:  #include “dev/staticclassmodel.h”

在classes檔案下 android.mk中,也一樣寫完整路徑:dev/staticclassmodel.cpp

否則編譯android時會找不到,而且提醒如下錯誤:

compile++ thumb  : game_logic_static &amp;lt;= appdelegate.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截圖:

【IOS-COCOS2D-X 遊戲開發之七】整合COCOS2DX的ANDROID項目到XCODE項目中,XCODE編寫&amp;編譯代碼,ANDROID導入打包運作即可!
【IOS-COCOS2D-X 遊戲開發之七】整合COCOS2DX的ANDROID項目到XCODE項目中,XCODE編寫&amp;編譯代碼,ANDROID導入打包運作即可!

繼續閱讀