【iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Android导入打包运行即可!

简介:

此篇针对较早的-x引擎讲解的,最新的可以参考: 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行即可!


之前有两节介绍了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中正常运行!

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   回车! 然后根据如下图进行输入:

这里要注意:

clean 要顶格不留空格!    两个 rm 语句前都是  tab 缩进!不要弄错!

输入后,control+x  保存,然后  y  ,最后回车!  OK!

不要关闭终端,继续输入   make clean   回车!  当终端输出如下提示,表示你正确配置了:


  
  
  1. rm -rf libs/ 
  2. rm -rf obj/ 
 

5.  下载如下四个 Android.mk 文件和一个Application.mk以及一个build_native.sh文件 ;

  mk.rar (126 字节, 9 次)

下载解压后你可看到如下几个文件,( mk 表示你下载解压出的mk文件夹)


  
  
  1. android/build_native.sh 
  2.   
  3. android/jni/Android.mk 
  4.   
  5. android/jni/Application.mk 
  6.   
  7. android/jni/helloworld/Android.mk 
  8.   
  9. Classes/Android.mk 
  10.   
  11. libs/cocos2dx/Android.mk 
 

这六个文件分别放入你Xcode项目如下路径,这里使用Himi的项目路径来说明,大家按照自己项目路径放入即可!


  
  
  1. /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/build_native.sh 
  2.   
  3. /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/jni/Android.mk 
  4.   
  5. /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/jni/Application.mk 
  6.   
  7. /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android/jni/helloworld/Android.mk 
  8.   
  9. /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/Classes/Android.mk 
  10.   
  11. /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输入的命令如下:

cd /Users/Himi/Documents/HimiWork/OhMonsterMRiOS/OhMonsterMRiOS/android    回车!

继续输入   make clean  回车!

继续输入  ./build_native.sh  回车!

如果之前的步骤都没有出现任何问题,OK,终端会输出一大堆的信息,最后显示如下类似内容!

 

OK,到此证明之前的配置正确完成!如果出现了 …stop类似的信息,说明其中有些地方配置出现问题!

别着急,还没结束!最后说二点:

一. 你拷贝到Xcode项目中的android相关文件等没必要导入你的Xcode中,如果导入反而让你的Xcode项目编译错误无法运行!

二. 当你以后在Xcode添加了一些类,那么你需要到  Classes/Android.mk  修改一下,将你新添加的类添加进去,如下图所示:

注意:新添加的类在其他类中“include”使用的时候一定要将文件的路径全部写完整,例如新添加有个类 StaticClassModel.cpp       StaticClassModel.h  放在dev文件夹下,那么:

其他类中使用时:  #include “dev/StaticClassModel.h”

在classes文件下 Android.mk中,也一样写完整路径:dev/StaticClassModel.cpp

否则编译android时会找不到,而且提醒如下错误:


  
  
  1. Compile++ thumb  : game_logic_static <= AppDelegate.cpp 
  2. Compile++ thumb  : game_logic_static <= HelloWorldScene.cpp 
  3. jni/../../Classes/HelloWorldScene.cpp:3:30: error: StaticClassModel.h: No such file or directory 
  4. jni/../../Classes/HelloWorldScene.cpp: In member function 'virtual bool HelloWorld::init()'
  5. jni/../../Classes/HelloWorldScene.cpp:56: error: 'StaticClassModel' has not been declared 
  6. 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截图:

 










本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/826616,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
算法 数据处理 Android开发
掌握安卓性能优化的秘诀:电池寿命与运行效率的提升
【10月更文挑战第6天】 本文深入探讨了安卓应用开发中的性能优化技巧,重点分析了影响电池寿命和运行效率的关键因素,并提供了针对性的优化策略。通过代码优化、资源管理、后台任务处理等方法,开发者可以显著提升应用的续航能力和流畅度。同时,结合具体案例,展示了如何在实际开发中应用这些技巧,确保应用在各种场景下都能保持高效运行。本文旨在为安卓开发者提供实用的性能优化指导,助力其打造更优质的应用体验。
85 2
|
3月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
443 2
|
5月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
212 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
5月前
|
Android开发 iOS开发
[ionic]解决运行Android、IOS出现Could not find the web assets directory
[ionic]解决运行Android、IOS出现Could not find the web assets directory
47 1
|
iOS开发 前端开发
iOS项目结构目录参考图示
对于iOS项目开发来说,一个清晰、合理、易于维护的项目结构目录对于多人协作的开发,也是一件非常重要的事(注意:务必让xcode的工程目录和实际的文件目录一致,否则难以管理)。
1081 0
|
9天前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
101 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
1月前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
127 66
|
20天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
1月前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
144 3

热门文章

最新文章