【筆記】試玩 cocos2d-x-3.0beta on android

試玩 cocos2d-x-3.0beta on android

1 環境準備

Android SDK Manager:html

ps: 此次兒我把環境都提高到了最新狀態,除了Java仍爲jdk-7u45。java

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太長了,能夠另外設個:python

SDK_ROOT = E:\android-sdk-windows

而後:linux

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時會用到。android

2 編譯HelloCpp樣例

位置: E:\cocos2d-x-3.0beta\samples\Cpp\HelloCpp\c++

2.1 android-build.py

位置: E:\cocos2d-x-3.0beta\build\android-build.pyapache

打開CMD,到其目錄位置,而後:windows

ps: Win7下能夠直接在其目錄"ctrl+shift+right click"選擇"在此處打開命令窗口"或"w+enter"。oracle

// 僅運行`android-build.py`可看參數說明
android-build.py -p 13 -b debug hellocpp

繼而,進入HelloCpp工程位置,即E:\cocos2d-x-3.0beta\samples\Cpp\HelloCpp\proj.androidapp

在鏈接上手機後,運行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文件。

相關文章
相關標籤/搜索