zoukankan      html  css  js  c++  java
  • Cocos2dx for Android & iOS开发环境配置最佳实践

    这篇文章是我的上一篇文章的续篇, 可以先参阅上一篇文章后再读这篇文章.

    这几天一直在研究Cocos2d-x同时在Android和iOS下开发, 有几点体会和不便, 开发环境配置请参阅上一篇文章.

    体会:

    1.从我的小项目来看, 从iOS到Android, cocos2d-x可以做到无缝迁移. 在Xcode里面写好, 到eclipse打包即可.

    不便:

    1.或许是Xcode对文件引用方式导入代码开发支持不好, 我一直遇到调试时的诡异现象. 比如, 不启动模拟器啊, 启动模拟器后黑屏啊, 应用在模拟器的名字居然变成了${Product_name}之类的.

    2.无法支持Xcode自带的git了, 我写代码很依赖git/svn, 可以方便地看到本次更改了什么代码, 心里比较踏实.

    3.eclipse没有配置单步调试, 所以最好还是在Xcode调试好, 直接到eclipse里面打包.

     像2d-x代码里面的几个测试项目的组织结构感觉是最好的, 如果以后能直接从脚本一次性创建多个平台的项目文件就好了.

    闲话少说, 我们开始尝试下做Android和iOS项目共存的最佳实践.

    再次声明下版本和路径:

    版本:
     
    Cocos2d-x: cocos2d-2.0-x-2.0.3
     
    OS X: 10.8
     
    Xcode: 4.5.1
     
    Eclipse: 4.2.1
     
    NDK: android-ndk-r8b
     
    Device: Samsung T959 cm10(Android 4.1.2)
     
    文件路径:
     
    Cocos2d-x: /opt/cocos2d-2.0-x-2.0.3
     
    Android SDK:/opt/android-sdk-macosx
     
    Android NDK:/opt/android-ndk-r8b
     
     如果下文提及这些路径, 请替换成你自己的路径.

      1.创建Android项目, 项目名称CCMTest

    Youngs-MacBook-Air:~ young40$ cd /opt/cocos2d-2.0-x-2.0.3/
    Youngs-MacBook-Air:cocos2d-2.0-x-2.0.3 young40$ ./create-android-project.sh
    use global definition of NDK_ROOT: /opt/android-ndk-r8b
    use global definition of ANDROID_SDK_ROOT: /opt/android-sdk-macosx
    Input package path. For example: org.cocos2dx.example
    com.young40
    ...输出省略了..
    id: 2 or "android-10"
         Name: Android 2.3.3
         Type: Platform
         API level: 10
         Revision: 2
         Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854
         ABIs : armeabi
    ----------
    ...输出省略了..
    input target id:
    2
    input your project name:
    CCMTest
    ....输出省略了...
    Youngs-MacBook-Air:cocos2d-2.0-x-2.0.3 young40$ cd CCMTest/
    Youngs-MacBook-Air:CCMTest young40$ ls
    Classes      Resources    proj.android
    Youngs-MacBook-Air:CCMTest young40$

    然后打开CCMTest这个目录, 并将proj.android这个目录做一个备份.(我是复制了一份到/opt/cocos2d-2.0-x-2.0.3目录下)

    然后删除CCMTest这个目录.

    2.创建Xcode项目.

    创建项目名称为"CCMTest"的项目, 保存在/opt/cocos2d-2.0-x-2.0.3目录下.

    如果你在上一步中没有删除, Xcode会提示你是否替换. 选择替换也是可行的.

    你可以测试下, Xcode中是工作正常的.

    3.恢复proj.android目录

    将第一步中备份过的proj.android目录恢复到/opt/cocos2d-2.0-x-2.0.3/CCMTest目录中.

    这个时候如果尝试通过命令build_native.sh来编译肯定会失败的, 因为相关的文件缺失了.

    用您熟悉的编辑器打开/opt/cocos2d-2.0-x-2.0.3/CCMTest/proj.android/jni/Android.mk文件

    将如下几行:

    修改为:

      

    打开编辑:/opt/cocos2d-2.0-x-2.0.3/CCMTest/proj.android/build_native.sh找到

    for file in "$APP_ROOT"/Resources/*

    修改为:

    for file in "$APP_ROOT"/"$APPNAME"/Resources/*

    这时可以调用命令来编译

    Youngs-MacBook-Air:proj.android young40$ /opt/cocos2d-2.0-x-2.0.3/CCMTest/proj.android/build_native.sh 

    应该一切正常.

    4.创建Eclipse项目.

    Eclipse,Android,Cocos2d-x开发环境的搭建请参阅上一篇文章.相信你应该已经很熟悉了.

    将/opt/cocos2d-2.0-x-2.0.3/CCMTest/proj.android导入为Eclipse项目.

    如果项目有报错请参见上一篇文章, 消除错误提示的方法.

    导入项目后点击Run运行项目.(这里可能要配置真机调试)

    好了,可以看到我们的测试项目在真机跑起来了.

    因为, cocos2d-x的兼容性很高, 基本上Xcode没有问题后, 在Eclipse中编译打包成Android即可.

    再加上Eclipse中调试配置非常麻烦, 所以, 我推荐在Xcode中写好, 运行下build_native.sh命令, 然后直接用Eclipse打包成Android即可.

    如果有什么问题, 欢迎交流, 欢迎关注我的微博.

    我的微博:http://weibo.com/young40

     
    分类: C++Cocos2d-x
    标签: cocos2d-x C++
  • 相关阅读:
    第七周学习进度
    环形数组求子数组最大和
    第六周学习进度
    团队
    子数组和最大值
    第五周学习进度
    第四周学习进度
    构建之法第一篇阅读笔记
    关于Sublime text 的PHP编译环境配置的问题
    PHP基础之 数组(二)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2736667.html
Copyright © 2011-2022 走看看