本文出自[無間落葉](轉載請保留出處):http://blog.leafsoar.com/archives/2013/04-22-22.html
開發 Android 應用的首選 IDE 是什麼,是 Eclipse ,而開發 Android 平臺的 cocos2d-x 遊戲呢,當然也是 Eclipse 。
Eclipse Android 開發環境搭建
- 如果你的 Eclipse 不支持 Java 開發,請安裝相關插件,或者使用 Eclipse IDE for Java Developers 版本集成的 Java 開發環境。
- 僅僅 Java 開發環境還不夠,我們還需要 ADT(Android Development Tools) ,顧名思義,通過它,我們才能在 Eclipse 建立 Android 項目,與 Eclipse 集成,打包生成 Android 應用程序包 Apk 文件。
- 作爲 ADT 的依賴環境,Android SDK 也是必須的。
- 由於 cocos2d-x 是由 C/C++ 編寫,爲了編譯 Android 平臺 C/C++ 程序,我們還需要安裝 NDK, 注意選擇 Linux 版本, 32 位或者 64 位視開發機而定。
安裝好 Eclipse、ADT 和 Android SDK、NDK,打開 Eclipse 做些簡單的配置,打開 Eclipse:
Eclipse -> Window -> Preferences -> Android
- 在右側設置 SDK Location 爲你的 Android SDK 位置。只有當位置正確,才能正確點擊 OK。
-
Linux 下進入 Android SDK 目錄,運行
[android-sdk-linux]/tools/android
,程序,安裝相關工具,各種版本的 Android SDK Platform,代碼實例等,可以選擇 4.1.2 版本。 -
Eclipse 切換到 Java Perspective (Eclipse 右上角設置),點擊 Eclipse 菜單
Window -> Android Virtual Device Manager
創建一個虛擬機,版本對應上一步驟所安裝的 SDK 版本。 -
爲了方便起見,我們將 Android SDK 和 NDK 的執行命令等(
[android-sdk-linux/tools] 和 ndk-build
),添加到 Linux 系統 PATH 環境變量。
此時,通過安裝配置,要能完成在 Linux 下使用 Eclipse 開發 Android 應用和 Android Jni 應用,我們才能繼續接下來的過程,如果配置出現問題,不能開發 Android 或者 Jni 應用,那麼請先解決之 ~
環境搭建過程,如果出現什麼問題或者疑問,可以 Google 之,或者在博客之後留言交流 ~
創建 Linux Cocos2d-x for Android 項目
我們首先通過 cocos2d-x 自帶的創建腳本創建 Android cocos2d-x 項目。
cd [cocos2d-x-path]
./create-android-project.sh # 回車
...
Input package path. For example: org.cocos2dx.example
com.leafsoar.HelloWorld # 輸入包名
...
...
----------
id: 7 or "android-16"
Name: Android 4.1.2
Type: Platform
API level: 16
Revision: 3
Skins: QVGA, WVGA800 (default), WSVGA, HVGA, WQVGA432, WVGA854, WQVGA400, WXGA720, WXGA800, WXGA800-7in
ABIs : armeabi-v7a
input target id:
7 # 輸入 target id,參照上面,根據自己的 sdk 版本選擇
...
input your project name:
HelloWorld # 輸入項目名稱
cd [cocos2d-x-path]/tools/project-creator/
python create_project.py #最新創建腳本,之前的腳本會逐步捨棄
Usage: create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMING_LANGUAGE
Options:
-project PROJECT_NAME Project name, for example: MyGame
-package PACKAGE_NAME Package name, for example: com.MyCompany.MyAwesomeGame
-language PROGRAMING_LANGUAGE Major programing lanauge you want to used, should be [cpp | lua | javascript]
Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame
Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language javascript
python create_project.py -project HelloWorld -package org.cocos2dx.example -language cppproj.ios : Done!
proj.android : Done!
proj.win32 : Done!
proj.mac : Done!
proj.blackberry : Done!
proj.linux : Done!
proj.marmalade : Done!
New project has been created in this path: [cocos2d-x-path]/projects/HelloWorld
Have Fun!
會在
[cocos2d-x-path]/projects目錄創建一個 [cocos2d-x-path]HelloWorld
的目錄,裏面包含文件如下:
HelloWorld/
├── Classes
│ ├── AppDelegate.cpp
│ ├── AppDelegate.h
│ ├── HelloWorldScene.cpp
│ └── HelloWorldScene.h
├── proj.android
│ ├── AndroidManifest.xml
│ ├── ant.properties
│ ├── bin
│ ├── build_native.sh
│ ├── build.xml
│ ├── jni
│ ├── libs
│ ├── local.properties
│ ├── ndkgdb.sh
│ ├── proguard-project.txt
│ ├── project.properties
│ ├── res
│ └── src
└── Resources
├── CloseNormal.png
├── CloseSelected.png
└── HelloWorld.png
上篇博文我們簡單分析了一下這樣的目錄組織方式,和其功用。創建好 cocos2d-x android 項目,我們開始編譯,proj.android
目錄下提供一個自動編輯腳本,完成的工作是,編譯
cocos2d-x C/C++ 程序,並且在 libs 目錄生成相應的 so 庫文件。
cd [HelloWorld]/proj.android
././build_native.sh
...
...
...
StaticLibrary : libextension.a
SharedLibrary : libgame.so
Install : libgame.so => libs/armeabi/libgame.so
make: Leaving directory '[cocos2dx-path]/HelloWorld/proj.android' '[cocos2dx-path]/projects/HelloWorld/proj.android'
看到如上信息,說明已經編譯成功,首次編譯過程稍微緩慢一點,如果沒有出現以上結果,或者編譯錯誤,多是因爲系統環境沒有配置正確。需要環境變量 NDK_ROOT
、COCOS2DX_ROOT
等,根據提示具體分析。
配置集成開發環境
爲了方便項目管理,我們把 HelloWorld
目錄移動到 Ecilpse 的工作空間之中,默認實在[cocos2dx-path] [cocos2dx-path]/projects目錄。然後使用 Eclipse
導入本地項目,指定 [HelloWorld/proj.android] 目錄導入項目。
-
導入之後我們發現項目出現感嘆號,這是因爲 Eclipse 管理此項目的依賴項目並不存在,我們繼續用 Eclipse 導入
[cocos2dx-path]/cocos2dx/platform/android/java
libcocos2dx 項目。 - 我們右擊 HelloWorld 修改項目屬性,找到 Android 項,看到 Library 屬性框,所引用的項目出現問題,首先 remove 然後 重新 Add 選擇剛纔添加的 libcocos2dx 項目。
- 我們 clean 清空一下 HelloWorld 項目。
-
此時在我的項目中 AndroidManifest.xml 文件出現androi:icon
圖標的錯誤,修改成@drawable/ic_launcher
- 右擊項目 Run as -> Android Application 就能運行此應用了
以上問題視自己的具體情況而定,可能出現不同的錯誤。
此時我們發現 Android 項目中,bin 目錄生成了 HelloWorld.apk 文件,這個就是最終的 Android 平臺 cocos2d-x 遊戲安裝包了。並且可以運行。
至此,我們已經能夠在 Linux 上運行編譯運行 Android 平臺的 cocos2d-x 遊戲,但是每次我們在編寫完 cocos2d-x 遊戲源代碼,我們都要執行 build_native.sh
命令,當然可以簡化此步驟,並且將上一偏博文的的
Linux 下開發 Cocos2d-x 遊戲,一遍編寫調試,一邊運行在 Android 平臺,或者兩個項目同時進行。這些內容將會在下一篇文章之中 ~
至此還沒有完,因爲我們移動了項目目錄,所以再次執行 build_native.sh
命令會出現問題,我們需要修改此文件中的配置:
COCOS2DX_ROOT="$DIR/../.."
將此值設置爲 [cocos2dx-path] 的絕對目錄,或者使用 COCOS2DX_ROOT 的環境變量。以保證此命令能夠執行編譯成功。這個問題留給讀者自己解決吧 : p