天天看点

【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导入打包运行即可!

继续阅读