Mac 下编译 Quick-Cocos2dx-Community 的 Android 版本

内容选自:《Cocos2d-x 之Lua 核心编程》

Quick-Cocos2dx-Community Android 打包分以下几个步骤:

  1. 安装 JDK
  2. 安装 ADT
  3. 安装 NDK
  4. 安装 Apache Ant
  5. 编译项目

前 4 个步骤搭建环境,仅需做一次,除非引擎更新需要更高的开发环境,否则不建议经常更新它们。如果编译环境已配置妥当,那么直接进入第 5 步:编译项目。

安装 JDK

打开 Java SE 官方网站:http://www.oracle.com/technetwork/java/javase/downloads/index.html

网页打开后滚动到Java SE 7u75/76部分,然后点击 JDK Download 按钮,如下图所示:

jdk7page.png

建议安装 JDK 7 以上版本。

进入 JDK 7 下载页面后有两个版本可选择:

  • CPU (7u75) release
    Critical Patch Updates,是重要 bug 的修复更新,对大多数用户而言,应该选择这个版本。
  • PSU (7u76) release
    Patch Set Updates,包含了 bug 修改与新功能,不建议使用。

注:具体版本号请以页面最新为准。

选择对应系统的 JDK 下载,Mac 下载jdk-7u75-macosx-x64.dmg。下载完毕后双击 dmg 文件开始安装。一路 next 安装完毕后,打开 Mac 的Terminal终端,输入命令

$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)

安装 ADT

ADT 是 Android Developer Tools 的缩写,它包含下面的内容:

  • Eclipse + ADT plugin
  • Android SDK Tools
  • Android Platform-tools
  • The latest Android platform
  • The latest Android system image for the emulator

Android 官方已把 Android Studio 推为官方的 Android 开发环境,但我们这里依然选择 ADT 作为 Android 编译环境,有以下几点原因:

  1. ADT 集成了 Android 开发需要的所有包(除 NDK 外),可以节省环境搭建的时间。
  2. ADT 方便进行命令行编译,为自动打包奠定基础。

ADT 最新版各平台下载地址:

http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140702.zip

配置步骤:

  1. 把 Mac 平台对应的 adt-bundle-mac-x86_64-20140702.zip 解压到一个目录并更名为 adt-bundle-mac,例如/Users/u0u0/bin/adt-bundle-mac。目录下包含两个子文件夹 eclipse 和 sdk。

  2. 编辑~/.bash_profile为 Shell 配置 ADT 环境变量:

    export ANDROID_SDK_ROOT="/Users/u0u0/bin/adt-bundle-mac/sdk"
    export ANDROID_HOME="/Users/u0u0/bin/adt-bundle-mac/sdk"
    

    另外还需要把 ANDROID_SDK_ROOT 下的 tools 和 platform-tools 两个目录加入到 PATH 变量中,以方便调用 ADT 提供的各种命令。

    PATH=/usr/local/bin:$PATH:~/bin:~/bin/python:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:
    

    注意:请根据本人 ADT 解压路径配置上述环境变量。

安装 NDK

Android SDK 基于 Java 实现,要编译 C++ 代码,还需要 NDK 环境。

Quick-Cocos2dx-Community 3.x 对 NDK 的版本有着特殊的需求,不能低也不能高。准确的说,我们需要安装 NDK 的 r9d 版本。

r9d 下载地址:
http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip
http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip
http://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2

配置步骤:

  1. 把 Mac 平台对应的 android-ndk-r9d-darwin-x86.tar.bz2 解压到一个目录并更名为 android-ndk,例如/Users/u0u0/bin/android-ndk

  2. 编辑~/.bash_profile为 Shell 配置 NDK 环境变量:

    export NDK_ROOT="/Users/u0u0/bin/android-ndk"
    export ANDROID_NDK_ROOT="/Users/u0u0/bin/android-ndk"
    

    注意:请根据本人 NDK 解压路径配置上述环境变量。

安装 Apache Ant

Apache Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 软件开发环境。我们的 Quick-Cocos2dx-Community 命令行打包需要用到 ant 工具。
Ant 官方网站:http://ant.apache.org/

最新版本为 1.9.4,二进制包不区分平台,Windows 和 Mac 通用。
二进制包下载地址:http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip

配置步骤:

  1. 把 apache-ant-1.9.4-bin.zip 解压到一个目录,例如/Users/u0u0/bin/ant

  2. 编辑~/.bash_profile为 Shell 配置 Ant 环境变量:

    export ANT_ROOT="/Users/u0u0/bin/ant/bin"
    

    另外还需要把 ant 下的 bin 目录加入到 PATH 变量中,以方便调用 ant 命令。

    PATH=/usr/local/bin:$PATH:~/bin:~/bin/python:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$ANT_ROOT:
    

    注意:请根据本人 Ant 解压路径配置上述环境变量。

编译项目

在编译项目之前,我们先确认一下编译环境。

请确保,Quick-Cocos2dx-Community、ADT、NDK 和 Ant 都已正确安装,这 4 个工具均需要配置~/.bash_profile,这里提供一个最终的~/.bash_profile文件参考,请以本人安装路径为准。

alias ls="ls -G"
export LC_ALL=en_US.UTF-8

export ANDROID_SDK_ROOT="/Users/u0u0/bin/adt-bundle-mac/sdk"
export NDK_ROOT="/Users/u0u0/bin/android-ndk"
export ANDROID_NDK_ROOT="/Users/u0u0/bin/android-ndk"
export ANDROID_HOME="/Users/u0u0/bin/adt-bundle-mac/sdk"
export ANT_ROOT="/Users/u0u0/bin/ant/bin"

PATH=/usr/local/bin:$PATH:~/bin:~/bin/python:/usr/local/go/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$ANT_ROOT:
# add by quick-cocos2d-x setup, DATE: 2015-01-07 TIME: 16:16:07
export QUICK_V3_ROOT=`cat ~/.QUICK_V3_ROOT`

作者的 Quick-Cocos2dx-Community 安装在/Users/u0u0/Documents/quick-3.3,并使用 player3 新建了一个 test 项目位于/Users/u0u0/Documents/project/quick_project/test

注:创建工程不勾选"Copy Source Files",也就是不包含引擎代码。

现在就以 test 项目为例说明如何编译 Android apk 包。

步骤:

  1. 切换到 test 的 Android 工程路径。

    $cd /Users/u0u0/Documents/project/quick_project/test/frameworks/runtime-src/proj.android
    
  2. 清理编译临时文件。

    $./clean.sh
    

    不一定每次都需要清理,但是建议编译 release 版本一定要先清理后打包。

  3. 编译 Quick-Cocos2dx-Community 引擎的 C++ 核心。

    $./build_native.sh
    

    这个过程调用 NDK 进行编译,并生成 libcocos2dlua.so 文件。如果一切顺利,应该看到下面的 log 信息:

    [armeabi] SharedLibrary  : libcocos2dlua.so
    [armeabi] Install        : libcocos2dlua.so => libs/armeabi/libcocos2dlua.so
    make: Leaving directory `/Users/u0u0/Documents/project/quick_project/test/frameworks/runtime-src/proj.android'
    
  4. 更新 test 的 Android 项目配置信息。

    $android update project -p . -t 1
    

    这步只需做一次即可。

  5. 更新 Quick-Cocos2dx-Community 引擎工程的 Android 项目配置信息。

    $cd /Users/u0u0/Documents/quick-3.3/cocos/platform/android/java
    $android update project -p . -t 1
    

    这步只需做一次即可。

  6. 修改 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 最好都在同一盘符下。
  7. 切换回 test 工程下的 proj.android 目录,运行 ant 打包命令。

    $cd /Users/u0u0/Documents/project/quick_project/test/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: 11 seconds
    

    apk 文件位于proj.android/bin/test-debug.apk

    ant 常用命令说明:

    1. ant debug用于生成自签名的测试 apk 包,可直接在 Android 手机上安装运行。
    2. ant release生成发布版本的 apk 包。默认配置生成的 test-release-unsigned.apk 包是没有签名的,不能直接安装,还需要用签名工具签名。
    3. ant clean清理 java 编译环境。

    注:$./clean.sh是清理 NDK 编译环境。

标签: android

?>