【笔记】试玩 cocos2d-x-3.0beta on android
2014-01-24 20:55
881 查看
试玩 cocos2d-x-3.0beta on android
1 环境准备
Cocos2d-x: v3.0betaAndroid 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 前提说明
首先,以下都是在Win7 32位上操作的。其次,这里假设上述环境都安装在了E:盘。
1.2 配置环境变量
ANDROID_SDK_ROOT = E:\android-sdk-windows NDK_ROOT = E:\android-ndk-r9c ANT_HOME = E:\apache-ant-1.9.3 PY_HOME = E:\Python27 JAVA_HOME = C:\Program Files\Java\jdk1.7.0_45 NDK_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界面。
projectName: HelloCocos packageName: org.join.hello.cocos projectPath: 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才支持。详见:<activity>。
或者,去除设置,以选择较低版本。否则,会有如下错误:
[aapt] E:\cocos2d-x-3.0beta\samples\Cpp\TestCpp\proj.android\bin\AndroidMan ifest.xml:13: error: Error: String types not allowed (at 'configChanges' with va lue 'orientation|screenSize|smallestScreenSize'). BUILD FAILED E:\android-sdk-windows\tools\ant\build.xml:653: The following error occurred whi le 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 FAILED E:\android-sdk-windows\tools\ant\build.xml:601: The following error occurred whi le executing this line: E:\cocos2d-x-3.0beta\cocos\2d\platform\android\java\build.xml:46: sdk.dir is mis sing. Make sure to generate local.properties using 'android update project' or t o 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文件。
相关文章推荐
- cocos2d-x3.0 编译android出现的问题笔记 cocos2dx3.0 Android.mk No rule to make target
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》移植到android手机
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》移植到android手机
- cocos2d-x 3.0 beta 自动生成Android.mk
- cocos2d-x 3.0 Android.mk 设置方法
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- cocos2d-x 3.0 引用第三方库 及编译成apk时android mk文件写法
- cocos2d-x 3.0 引用第三方库 及编译成apk时android mk文件写法
- Cocos2d-x 3.0 beta 中加入附加项目,解决无法打开包括文件:“extensions/
- cocos2d-x 3.0 win32项目移植到android平台
- 在Eclipse上构建Android 2.3.3 /3.0 开发环境 (学习笔记一)
- cocos2d-x 3.0学习-Android中集成Admob插页广告
- Cocos2d-x 3.0 beta 中加入附加项目,解决无法打开包括文件:“extensions/
- cocos2d-x-2.2 window下配置笔记(ADT+android-ndk-r9b) 无cygwin
- 【Cocos2d-x 3.0学习笔记】精灵特效
- 【Cocos2d-x 3.0学习笔记】动作,动画
- Android 3.0 访问WebService 出现 android.os.NetworkOnMainThreadException异常
- cocos2d-x 3.0 Beta 初步理解
- Cocos2d-x 3.0 JNI BUG 修复。(Android 如何创建一个线程 延迟执行函数 创建一个随机数)
- Cocos2d3.0学习笔记-Action复杂动作