zoukankan      html  css  js  c++  java
  • Cocos2d-x项目编译为Android应用——命令行方式


    配置

    • 相关工具:Cocos2d-x 3.2 + Ant 1.9.4 + Android NDK r9d + Android SDK
    • 运行平台:OS X 10.9.4+ Xcode 6

    前言:笔者使用 Xcode 开发完成 Cocos2d-x 项目后,想要把项目移植到 Android 平台,打包成 apk 文件。但是笔者并未安装 Eclipse,因此采用命令行方式进行编译打包。

    一、编译为 debug 版本

    首先介绍如何生成 debug 版本的 apk 文件。

    编译前配置

    1、完成代码文件的编写,在其他平台上运行成功

    给自己:Xcode 开发时相对路径只需要写文件名即可,而 Android 开发时要从项目路径开始写。因此要把 Resource 文件夹下的所有子文件夹的资源文件都放到 Resource 目录下。

    2、编辑%ProjectFolder%/proj.android/jni/Android.mk
    在 LOCAL_SRC_FILES 中加入程序涉及的所有 .cpp 文件(也就是 Classes 文件夹下的所有 .cpp 文件)
    例如

    LOCAL_SRC_FILES := hellocpp/main.cpp 
                       ../../Classes/AppDelegate.cpp 
                       ../../Classes/ShapeModel.cpp 
    ../../Classes/RoundCircle.cpp 
    ../../Classes/RectDrawNode.cpp 
    ../../Classes/PrepareLayer.cpp 
    ../../Classes/MenuLayer.cpp 
    ../../Classes/LifeCircle.cpp 
    ../../Classes/HUDLayer.cpp 
    ../../Classes/HomeScene.cpp 
    ../../Classes/GameWorldController.cpp 
    ../../Classes/GameScene.cpp 
    ../../Classes/GameEndScene.cpp 
    ../../Classes/GameData.cpp 
    ../../Classes/BackGroundLayer.cpp
    

    3、添加 NDK、Android SDK、Ant 的路径 (仅在第一次使用 cocos 命令时需要此步骤)

    $ cd cocos2d-x //进入coco2d-x-3.2源文件的文件夹
    $ ./setup.py	//打开设置文件//运行后会需要进行三个路径的设置
    $ source FILE_TO_SAVE_SYSTEM_VARIABLE // 把路径添加到系统变量
    

    FILE_TO_SAVE_SYSTEM_VARIABLE 默认是 /Users/apple/.bash_profile

    需要设置的路径均为解压后的根目录文件夹路径。Ant 的路径可能需要延长到 bin 文件夹。
    注意 Android SDK 文件夹无法直接使用,需要通过 SDK Manager 下载所需要的API以及相关文件,SDK Manager 可以通过%SDK_ROOT% oolsandroid打开。

    4、更改%ProjectFolder%/proj.android/AndroidManifest.xml相关配置,例如设置横屏竖屏

    5、运行 Android 模拟器(AVD),模拟器需要开启 GPU 加速。

    编译并运行

    6、转到项目路径,进行编译

    $ cd PROJECT_PATH
    $ cocos run -p android -j 4
    

    可以添加--ap XX指定编译的目标版本(--ap 16编译为 SDK 版本号16的应用,需要用 Android SDK 安装 API 16 的相关文件)
    注意添加的条件 ap 前面有两条 短横杠,不是一条,笔者第二次使用的时候由于只加了一条,导致总是报错Android platform not specified, searching a default one...

    7、编译成功后,使用adb logcat查看 log 信息

    8、生成的 apk 文件可以在%ProjectFolder%/proj.android/bin路径下找到。

    二、编译为 release 版本

    上述过程得到的 apk 文件是 debug 版本,如果要编译 release 版本,还需要有一个签名文件,步骤如下:

    生成签名文件

    1、生成 .keystore 文件

    在终端输入如下命令:

    $ keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000 -keystore /Users/apple/android.keystore
    

    -genkey 产生证书文件

    -keystore 指定生成密钥库的.keystore文件位置和名称

    -keyalg 指定密钥的算法

    -alias 产生别名

    -validity 有限时间

    编译运行

    编译过程基本与 debug 版本的编译方式相同,只需要在编译命令上多加一个可选属性。执行过程中会要求提供 keystore 文件的信息,填上去就 OK 了。

    2、编译 cocos2d-x 项目时加上 -m release命令
    3、输入 keystore 文件地址,填入密码、别名、密码(两个密码都是自己在创建 keystore 时的密码,可以设置为一致)。
    4、完成,生成的 apk 文件同样可以在%ProjectFolder%/proj.android/bin路径下找到。

    可能遇到的问题:提示找不到 Android sdk 下 tools 中的 zipalign 可执行文件,从网上下载一个即可,这是一个打包优化程序。

    三、参考链接

    1. 官方: Cocos2d-x README(介绍了 cocos 命令的使用)
    2. Cocos2d-x游戏打包成Android应用程序(介绍了用eclipse打包的过程)
    3. 搭建 cocos2d-x Android 常见问题
      (解决一个编译时的错误,Can't find right android-platform for project :"%ProjectFolder%proj.android".The android-platform should be equal/larger than 20
    4. android的logcat详细用法
    5. How to Build an Android Project with Eclipse
    6. cocos2d-x3.0rc打包apk遇到的一些问题记录
      (解决一个关于命令行方式创建keystore签名的问题)
    7. Android 打包签名 从生成keystore到完成签名
    8. 官方:Cocos2d Console使用手册(关于 cocos-console 的使用)
    9. 官方:Cocos2d-console (完整 cocos-console 使用手册,英文版)

    总结
    在经过一次发布后,再次使用只需要:

    1、在 jniAndroid.mk文件中添加需要编译的 cpp 文件
    2、终端输入如下命令

    $ cd PROJECT_PATH
    $ cocos run -p android -j 4 --ap 20 -m release
    




    知识共享许可协议
    作者:tangyikejun
    本文采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    JVM工作原理--垃圾收集
    并发编程之单例模式
    设计模式之动态代理
    UML类图基础
    CAP理论的理解
    Dubbo RPC调用参数校验---错误message自动返回
    ELK日志分析系统搭建
    Kafka原理及应用(一)
    HTTPS的原理
    Maven 生命周期的概念(指令默认顺序执行)
  • 原文地址:https://www.cnblogs.com/tangyikejun/p/4175330.html
Copyright © 2011-2022 走看看