【轉載】cocos2d-x-3.0beta on android 打包錯誤問題

來源:互聯網
上載者:User

標籤:

試玩 cocos2d-x-3.0beta on android1 環境準備
  • Cocos2d-x: v3.0beta
  • Android SDK: Revision 22.3(SDK Tools)
  • Android NDK: Revision 9c
  • Apache Ant: 1.9.3 Released
  • Python: 2.7.6

Android SDK Manager:

ps: 這次兒我把環境都提升到了最新狀態,除了Java仍為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.3PY_HOME = E:\Python27JAVA_HOME = C:\Program Files\Java\jdk1.7.0_45NDK_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

詳見: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\AndroidManifest.xml:13: error: Error: String types not allowed (at ‘configChanges‘ with value ‘orientation|screenSize|smallestScreenSize‘).BUILD FAILEDE:\android-sdk-windows\tools\ant\build.xml:653: The following error occurred while 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 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 missing. Make sure to generate local.properties using ‘android update project‘ or to 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特性,可以閱讀以下內容:

  • C++ Primer, 5th Edition,已有中文版。
  • C++11 FAQ,已有中文翻譯。
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檔案。

【轉載】cocos2d-x-3.0beta on android 打包錯誤問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.