博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】cocos2d-x-3.0beta on android 打包错误问题
阅读量:6706 次
发布时间:2019-06-25

本文共 3570 字,大约阅读时间需要 11 分钟。

试玩 cocos2d-x-3.0beta on android

1 环境准备

  • : v3.0beta
  • : Revision 22.3(SDK Tools)
  • : Revision 9c
  • : 1.9.3 Released
  • : 2.7.6

Android SDK Manager:

ps: 这次儿我把环境都提升到了最新状态,除了仍为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.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: HelloCocospackageName: 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

详见:。

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 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设的依赖。详见:。

此外,需要先给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 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密码

详见:。

ps: 混淆没什么必要了。

5 命令行编译

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

转载于:https://www.cnblogs.com/dudu580231/p/5724635.html

你可能感兴趣的文章
敏捷开发
查看>>
Object.defineProperty()
查看>>
加班与效率
查看>>
package.json更新模块
查看>>
Angular学习笔记
查看>>
教你不编程快速解析 JSON 数据
查看>>
splice()方法采坑
查看>>
全面解析this
查看>>
MongoDB的可视化工具(Studio 3T)
查看>>
Handler全家桶之 —— Handler 源码解析
查看>>
正则表达式
查看>>
通过BitSet源码来理解BitMap算法
查看>>
Windows7 支持即将终止!还有不知道的吗?
查看>>
学习springBoot(12)定时任务
查看>>
require()循环引用问题
查看>>
多行文字居中
查看>>
理解JavaScript 闭包
查看>>
Day9:html和css
查看>>
偏瘫能恢复吗?成都顾连康复治疗妙招
查看>>
微软ML.NET 0.10版分离处理表格数据增.NET生态系互操作性
查看>>