试玩 cocos2d-x-3.0beta on android

1 环境准备

  • Cocos2d-x: v3.0beta
  • Android SDK: Revision 22.3(SDK Tools)
  • Android NDK: Revision 9c
  • Apache Ant: 1.9.3 Released
  • Python: 2.7.6

Android SDK Manager:

ps: 这次儿我把环境都提升到了最新状态,除了Java仍为jdk-7u45。

1.1 前提说明

  1. 首先,以下都是在Win7 32位上操作的。
  2. 其次,这里假设上述环境都安装在了E:盘。

1.2 配置环境变量

ANDROID_SDK_ROOT = E:\android-sdk-windowsNDK_ROOT = E:\android-ndk-r9cANT_HOME = E:\apache-ant-1.9.3PY_HOME = E:\Python27JAVA_HOME = C:\Program Files\Java\jdk1.7.0_45NDK_TOOLCHAIN_VERSION = 4.8

ANDROID_SDK_ROOT太长了,可以另外设个:

SDK_ROOT = E:\android-sdk-windows

然后:

Path += %SDK_ROOT%\tools;%SDK_ROOT%\platform-tools;%NDK_ROOT%;        %ANT_HOME%\bin;%PY_HOME%;%PY_HOME%\Scripts;%JAVA_HOME%\bin;...

ps: ANDROID_SDK_ROOT,NDK_ROOT,NDK_TOOLCHAIN_VERSION之后运行android-build.py,build_native.py时会用到。

2 编译HelloCpp样例

位置: E:\cocos2d-x-3.0beta\samples\Cpp\HelloCpp\

2.1 android-build.py

位置: E:\cocos2d-x-3.0beta\build\android-build.py

打开CMD,到其目录位置,然后:

ps: Win7下可以直接在其目录"ctrl+shift+right click"选择"在此处打开命令窗口"或"w+enter”。

// 仅运行`android-build.py`可看参数说明android-build.py -p 13 -b debug hellocpp

继而,进入HelloCpp工程位置,即E:\cocos2d-x-3.0beta\samples\Cpp\HelloCpp\proj.android

在连接上手机后,运行ant installd安装编译好的debug版。

3 自己来创建个HelloCocos呢?

3.1 create_project.py创建工程

位置: E:\cocos2d-x-3.0beta\tools\project-creator\create_project.py

直接运行create_project.py即可,会冒出个高端的Tk界面。

language: cpppackageName: org.join.hello.cocosprojectPath: E:/language: cpp

create,然后E:\HelloCocos\即是我们的工程了。

3.2 build_native.py编译so

位置: E:\HelloCocos\proj.android\build_native.py

进入HelloCocos工程位置,即E:\HelloCocos\proj.android

build_native.py即会开始编译so。

3.3 ant编译android工程

首先,需要为cocos2dx在android平台的java lib代码,添加android library工程支持。

位置: E:\HelloCocos\cocos2d\cocos\2d\platform\android\java\

// 添加android library工程支持android update lib-project -t android-13 -p .

然后,继续回到HelloCocos工程位置,为其添加android工程支持。

// 添加android工程支持android update project -p . -t android-13// 编译并安装(debug版)ant debug install

详见:Managing Projects from the Command Line。

4 其他说明

4.1 为什么Android平台选择了13,即Android 3.2?

生成项目(包括samples)的AndroidManifest.xml,其activity的configChanges默认设置了smallestScreenSize,而其在API 13才支持。详见: 。

或者,去除设置,以选择较低版本。否则,会有如下错误:

     [aapt] E:\cocos2d-x-3.0beta\samples\Cpp\TestCpp\proj.android\bin\AndroidManifest.xml:13: error: Error: String types not allowed (at 'configChanges' with value 'orientation|screenSize|smallestScreenSize').BUILD FAILEDE:\android-sdk-windows\tools\ant\build.xml:653: The following error occurred while executing this line:E:\android-sdk-windows\tools\ant\build.xml:698: null returned: 1

4.2 cocos2dx library如何依赖的?

Android工程还需要依赖cocos2dx的java lib代码,其是通过project.properties的android.library.reference.1设的依赖。详见:Referencing a Library Project。

此外,需要先给cocos2dx的java lib代码添加android library工程支持(步骤3.3)。否则,执行ant时会遇到如下错误:

BUILD FAILEDE:\android-sdk-windows\tools\ant\build.xml:601: The following error occurred while executing this line:E:\cocos2d-x-3.0beta\cocos\2d\platform\android\java\build.xml:46: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var

4.3 NDK_TOOLCHAIN_VERSION=4.8,用来指定编译链为gcc 4.8。

位置: E:\android-ndk-r9c\toolchains\arm-linux-androideabi-4.8\

这个需要设为环境变量,运行android-build.py,build_native.py时会进行检测。不然,它也可以添加在Application.mk(如果你通过命令行来编译的话)。

然后,指定gcc4.8,是由于cocos2dx 3.0引入了c++11特性。有关c++11特性,可以阅读以下内容:

  • C++ Primer, 5th Edition,已有中文版。
  • C++11 FAQ,已有中文翻译。

4.4 私钥签名

ant.properties,增加key.store、key.alias属性。

如果要免去密码输入的话,可以增加key.store.password、key.alias.password属性。

key.store=keystore路径key.alias=keyalias名称key.store.password=keystore密码key.alias.password=keyalias密码

详见:Signing Your Applications。

ps: ProGuard混淆没什么必要了。

5 命令行编译

需要注意:Resources\内的东西需要手动拷贝到proj.android\assets\内。另外,对于TestCpp样例,要删掉Images\下的.gz文件。

更多相关文章

  1. [置顶] Android(安卓)Gallery橱窗效果
  2. android VideoView播放工程raw下的视频+全屏问题
  3. java.lang.NoClassDefFoundError错误解决方法
  4. Android使adb作为host运行在arm64平台
  5. ExpandableListView
  6. Android(安卓)NDK开发:HelloNDK
  7. android按屏幕大小动态确定控件位置及大小
  8. DelphiXE Android的所有权限按照分类总结说明
  9. Android动画之translate(位移动画)

随机推荐

  1. android ImageView 控件
  2. Android(安卓)TextView Marquee的应用实
  3. Android(安卓)4.0后,自定义Title报错 You
  4. Android(安卓)全屏设置
  5. Android(安卓)keytool 生成证书MD5指纹
  6. Android(安卓)应用指定浏览器开发实例
  7. TableLayout
  8. android 用UDP做的心跳连接 小示例
  9. android 圆环图形的实现
  10. Android中蓝牙使用步骤小结