编译APK,俗称打包。很早就想搞打包操作了,一直没有机会加上自己能力有限,但是这次在项目中有机会能尝试打包,非常开心。打包环境配置过程很艰辛,但是看到apk包的时候非常刺激。
Quick-Cocos2dx-Community 是跨平台的游戏引擎,支持时下流行的 Android 移动操作系统。本节将教大家如何在 Windows 上把已经开发好的游戏打包为 Android 上可运行的 apk 文件。
Quick-Cocos2dx-Community Android 打包分以下几个步骤:
- 安装 JDK
- 安装 ADT
- 安装 NDK
- 安装 Apache Ant
- 编译项目
前 4 个步骤搭建环境,仅需做一次,除非引擎更新需要更高的开发环境,否则不建议经常更新它们。如果编译环境已配置妥当,那么直接进入第 5 步:编译项目。
本文以 Windows 7 为例进行截图。
安装 JDK
JDK 安装包的下载请参考:Mac 下编译 Quick-Cocos2dx-Community 的 Andriod 版本。
选择对应系统的 JDK 下载,Windows 64位系统下载jdk-7u75-windows-x64.exe
。下载完毕后双击 exe 文件开始安装。一路 next 安装完毕后,打开 Windows 控制台,输入命令
$java -version
如果 JDK 成功安装,将显示如下的版本信息:
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
为了能正确使用 ant 进行命令行编译,还需要设置 JDK 的环境变量。
右键"计算机",选择弹出菜单中的"属性",然后在"控制面板主页"中点击"高级系统设置"。如下图所示:
"系统属性" => "高级" => "环境变量"
在"环境变量"的"用户变量"中加入以下变量:
系统变量加入:JAVA_HOME 值:C:\Program Files\Java\jdk1.7.0_75
在系统变量path中加入:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意:请根据本人 JDK 版本以及安装路径配置上述环境变量。
安装 ADT
ADT 安装包的下载请参考:Mac 下编译 Quick-Cocos2dx-Community 的 Andriod 版本。
配置步骤:
-
把 Windows 64位系统对应的 adt-bundle-windows-x86_64-20140702.zip 解压到一个目录并更名为 adt-bundle-windows,例如
D:\u0u0\adt-bundle-windows
。目录下包含两个子文件夹 eclipse 和 sdk。 -
配置系统环境变量。
在"环境变量"的"用户变量"中加入以下两个变量:变量:ANDROID_SDK_ROOT 值:D:\u0u0\adt-bundle-windows\sdk 变量:ANDROID_HOME 值:D:\u0u0\adt-bundle-windows\sdk
并在"系统变量"的 Path 变量的尾部添加以下字段:
;D:\u0u0\adt-bundle-windows\sdk\tools;D:\u0u0\adt-bundle-windows\sdk\platform-tools
如下图所示:
环境变量界面打开方式参见上面的 JDK 安装。
请根据本人 ADT 解压路径配置上述环境变量。
安装 NDK
NDK 安装包的下载请参考:Mac 下编译 Quick-Cocos2dx-Community 的 Andriod 版本。
配置步骤:
-
把 Windows 平台对应的 android-ndk-r9d-windows-x86_64.zip 解压到一个目录并更名为 android-ndk,例如
D:\u0u0\android-ndk
。 -
配置系统环境变量。
在"环境变量"的"用户变量"中加入以下两个变量:变量:ANDROID_NDK_ROOT, 值:D:\u0u0\android-ndk 变量:NDK_ROOT 值:D:\u0u0\android-ndk
环境变量界面打开方式参见上面的 JDK 安装。
请根据本人 NDK 解压路径配置上述环境变量。
安装 Apache Ant
Apache Ant 安装包的下载请参考:Mac 下编译 Quick-Cocos2dx-Community 的 Andriod 版本。
配置步骤:
-
把 apache-ant-1.9.4-bin.zip 解压到一个目录,例如
D:\u0u0\ant
。 -
配置系统环境变量。
在"环境变量"的"用户变量"中加入以下变量:变量:ANT_ROOT 值:D:\u0u0\ant\bin
并在"系统变量"的 Path 变量的尾部添加以下字段:
;D:\u0u0\ant\bin
环境变量界面打开方式参见上面的 JDK 安装。
请根据本人 Ant 解压路径配置上述环境变量。
编译项目
在编译项目之前,我们先确认一下编译环境。
请确保,Quick-Cocos2dx-Community、JDK、ADT、NDK 和 Ant 都已正确安装,这 5 个工具均需要配置"系统环境变量"。
作者的 Quick-Cocos2dx-Community 安装在D:\cocos\quick-3.3
,并使用 player3 新建了一个 test 项目位于D:\cocos\workspace\hello
。
注:创建工程不勾选"Copy Source Files",也就是不包含引擎代码。
现在就以 hello 项目为例说明如何编译 Android apk 包。
步骤:
-
切换到 hello 的 Android 工程路径。
C:\Users\Administrator>d: D:\>cd D:\cocos\workspace\hello\frameworks\runtime-src\proj.android
-
清理编译临时文件。
D:\cocos\workspace\hello\frameworks\runtime-src\proj.android>clean.bat
不一定每次都需要清理,但是建议编译 release 版本一定要先清理后打包。
-
编译 Quick-Cocos2dx-Community 引擎的 C++ 核心。
D:\cocos\workspace\hello\frameworks\runtime-src\proj.android>build_native.bat
这个过程调用 NDK 进行编译,并生成 libcocos2dlua.so 文件。如果一切顺利,应该看到下面的 log 信息:
[armeabi] SharedLibrary : libcocos2dlua.so [armeabi] Install : libcocos2dlua.so => libs/armeabi/libcocos2dlua.so make.exe: Leaving directory `D:/cocos/workspace/hello/frameworks/runtime-src/proj.android'
-
更新 test 的 Android 项目配置信息。
D:\cocos\workspace\hello\frameworks\runtime-src\proj.android>android update project -p . -t 1
这步只需做一次即可。
-
更新 Quick-Cocos2dx-Community 引擎工程的 Android 项目配置信息。
D:\>cd D:\cocos\quick-3.3\cocos\platform\android\java D:\cocos\quick-3.3\cocos\platform\android\java>android update project -p . -t 1
这步只需做一次即可。
-
修改 proj.android 目录下 project.properties 文件中关于 Quick-Cocos2dx-Community 引擎工程的引用路径。
android.library.reference.1=../../../../../../quick-3.3/cocos/platform/android/java
注意以下事项:
- 每次执行第 4 步骤后,都需要重新配置 project.properties。
android.library.reference
只认相对路径,所以 Quick-Cocos2dx-Community 和 test 最好都在同一盘符下。
-
切换回 test 工程下的 proj.android 目录,运行 ant 打包命令。
D:\cocos\workspace\hello\frameworks\runtime-src\proj.android>ant debug
注:如果遇到类似
resolve to a path with no project.properties
的错误提示信息,请仔细检查 project.properties 中的引擎相对路径是否正确配置。成功编译将看到如下 log 信息:
-post-build: debug: BUILD SUCCESSFUL Total time: 19 seconds
apk 文件位于
proj.android/bin/hello-debug.apk
。ant 常用命令说明:
ant debug
用于生成自签名的测试 apk 包,可直接在 Android 手机上安装运行。ant release
生成发布版本的 apk 包。默认配置生成的 hello-release-unsigned.apk 包是没有签名的,不能直接安装,还需要用签名工具进行签名。ant clean
清理 java 编译环境。
注:
clean.bat
是清理 NDK 编译环境。