文档章节

【笔记】试玩 cocos2d-x-3.0beta on android

加壹
 加壹
发布于 2014/01/24 20:55
字数 945
阅读 7620
收藏 49

试玩 cocos2d-x-3.0beta on android

1 环境准备

Android SDK Manager:

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

1.1 前提说明

  1. 首先,以下都是在Win7 32位上操作的。
  2. 其次,这里假设上述环境都安装在了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特性,可以阅读以下内容:

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文件。

© 著作权归作者所有

共有 人打赏支持
加壹
粉丝 25
博文 21
码字总数 20538
作品 0
无锡
私信 提问
加载中

评论(4)

v
vipyami
在Eclipse里NDK和CDT的配合有问题,C++11的特性编译可以通过,但是index不能识别,编辑器里一片红,博主怎么解决的?
紫电清霜
紫电清霜
这次儿20
penngo
penngo
40这个试玩教程内容少了点。。。
回去干活
回去干活
为了这个coco2dx,我不得不又从一个初学者重新学习c++,好苦B。为什么不主推PYTHON呢?这样就没这么累了。
基于Firefly + cocos2d-x的卡牌手游《暗黑世界V1.0》源码开放下载

安卓/IOS跨平台 卡牌手游源码《暗黑世界V1.0》完整商用版,免费提供下载!! 游戏名称:《暗黑世界》 游戏终端:安卓(android) / IOS 游戏类型:卡牌类 游戏版本:V1.0 服务器框架:Firef...

大鸡蛋
2013/08/19
9.9K
18
Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin

Android开发者做cocos2dx最大的绊脚石,不是c++,而是环境的搭建... 骨头也是费了半天劲才终于在真机上看到了那个类似猕猴桃的头,这里简单记录一下。 环境:(算比较新了2013.11.17) coco...

懒骨头
2013/12/09
0
0
卡牌手游《暗黑世界V1.3》商用版正式开源!

开源时间:2013年8月26日 游戏名称:《暗黑世界》 游戏终端:安卓(android) / IOS 游戏类型:卡牌类 游戏版本:V1.3 服务器框架:Firefly Game Server Framework V1.2.2 客户端引擎:Cocos...

大鸡蛋
2013/08/27
6.6K
21
游戏开发之--开源软件1--cocos2d-x(c++)|openbor

Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhon...

donghan
2013/11/04
0
0
Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

又是一个愉快的夜晚 还是那张长长的工作桌 哲哲在左边做一个香云纱手包 骨头在这里噼里啪啦的解刨 pad里放着《赢在中国》 桌子中间各种饮料、奶、水果... 进击吧~骨头~ 首先感谢Android技术...

懒骨头
2013/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

追加字节能优化性能

这种方式看起来很神奇,单如果深入理解处理器架构就能理解其中的奥秘。让我们先来看看LinkedTransferQueue这个类,它使用一个内部类型来定义队列的头队列Head和尾节点tail,二这个内部类Pad...

无知的小狼
16分钟前
0
0
性能优化(JVM概念及配置)

虚拟机组成 一次编写,到处运行 Java虚拟机是对操作系统的模拟,隔离差异 2018编程语言排行榜 一个复杂的构架 虚拟机的内部概念 运行原理 编译器,解释器执行流程 内存分配-线程模型 栈帧模型...

这很耳东先生
22分钟前
2
0
Scala之初步认识与环境准备

1. 了解 Scala 1.1. 什么是 Scala Scala 是 Scalable Language 的简写,是一门多范式的编程语言。 Scala设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚...

飞鱼说编程
43分钟前
4
0
Vue项目分环境打包的实现步骤

在项目开发中,我们的项目一般分为开发版、测试版、Pre版、Prod版。Vue-cli的默认环境一只有dev和prod两个,之前每次要发布测试版或Pre版都是修改了源码中API地址后打包,这样很麻烦。如果能...

peakedness丶
44分钟前
6
0
vue+lowdb+express

搭建流程: 1.安装Node.js; 2.安装npm; 3.安装Express; 搭建流程 npm install -g express 安装 express 生成器 npm install -g express-generator 查看是否安装成功,随便输的一个命令...

Js_Mei
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部