Cocos2d-x項目編譯為Android應用——命令行方式



配置

  • 相關工具:Cocos2d-x 3.2 + Ant 1.9.4 + Android NDK r9d + Android SDK
  • 運行平台:OS X 10.9.4+ Xcode 6

前言:筆者使用 Xcode 開發完成 Cocos2d-x 項目后,想要把項目移植到 Android 平台,打包成 apk 文件。但是筆者並未安裝 Eclipse,因此采用命令行方式進行編譯打包。

一、編譯為 debug 版本

首先介紹如何生成 debug 版本的 apk 文件。

編譯前配置

1、完成代碼文件的編寫,在其他平台上運行成功

給自己:Xcode 開發時相對路徑只需要寫文件名即可,而 Android 開發時要從項目路徑開始寫。因此要把 Resource 文件夾下的所有子文件夾的資源文件都放到 Resource 目錄下。

2、編輯%ProjectFolder%/proj.android/jni/Android.mk
在 LOCAL_SRC_FILES 中加入程序涉及的所有 .cpp 文件(也就是 Classes 文件夾下的所有 .cpp 文件)
例如

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/ShapeModel.cpp \
../../Classes/RoundCircle.cpp \
../../Classes/RectDrawNode.cpp \
../../Classes/PrepareLayer.cpp \
../../Classes/MenuLayer.cpp \
../../Classes/LifeCircle.cpp \
../../Classes/HUDLayer.cpp \
../../Classes/HomeScene.cpp \
../../Classes/GameWorldController.cpp \
../../Classes/GameScene.cpp \
../../Classes/GameEndScene.cpp \
../../Classes/GameData.cpp \
../../Classes/BackGroundLayer.cpp

3、添加 NDK、Android SDK、Ant 的路徑 (僅在第一次使用 cocos 命令時需要此步驟)

$ cd cocos2d-x //進入coco2d-x-3.2源文件的文件夾
$ ./setup.py	//打開設置文件//運行后會需要進行三個路徑的設置
$ source FILE_TO_SAVE_SYSTEM_VARIABLE // 把路徑添加到系統變量

FILE_TO_SAVE_SYSTEM_VARIABLE 默認是 /Users/apple/.bash_profile

需要設置的路徑均為解壓后的根目錄文件夾路徑。Ant 的路徑可能需要延長到 bin 文件夾。
注意 Android SDK 文件夾無法直接使用,需要通過 SDK Manager 下載所需要的API以及相關文件,SDK Manager 可以通過%SDK_ROOT%\tools\android打開。

4、更改%ProjectFolder%/proj.android/AndroidManifest.xml相關配置,例如設置橫屏豎屏

5、運行 Android 模擬器(AVD),模擬器需要開啟 GPU 加速。

編譯並運行

6、轉到項目路徑,進行編譯

$ cd PROJECT_PATH
$ cocos run -p android -j 4

可以添加--ap XX指定編譯的目標版本(--ap 16編譯為 SDK 版本號16的應用,需要用 Android SDK 安裝 API 16 的相關文件)
注意添加的條件 ap 前面有兩條 短橫杠,不是一條,筆者第二次使用的時候由於只加了一條,導致總是報錯Android platform not specified, searching a default one...

7、編譯成功后,使用adb logcat查看 log 信息

8、生成的 apk 文件可以在%ProjectFolder%/proj.android/bin路徑下找到。

二、編譯為 release 版本

上述過程得到的 apk 文件是 debug 版本,如果要編譯 release 版本,還需要有一個簽名文件,步驟如下:

生成簽名文件

1、生成 .keystore 文件

在終端輸入如下命令:

$ keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000 -keystore /Users/apple/android.keystore

-genkey 產生證書文件

-keystore 指定生成密鑰庫的.keystore文件位置和名稱

-keyalg 指定密鑰的算法

-alias 產生別名

-validity 有限時間

編譯運行

編譯過程基本與 debug 版本的編譯方式相同,只需要在編譯命令上多加一個可選屬性。執行過程中會要求提供 keystore 文件的信息,填上去就 OK 了。

2、編譯 cocos2d-x 項目時加上 -m release命令
3、輸入 keystore 文件地址,填入密碼、別名、密碼(兩個密碼都是自己在創建 keystore 時的密碼,可以設置為一致)。
4、完成,生成的 apk 文件同樣可以在%ProjectFolder%/proj.android/bin路徑下找到。

可能遇到的問題:提示找不到 Android sdk 下 tools 中的 zipalign 可執行文件,從網上下載一個即可,這是一個打包優化程序。

三、參考鏈接

  1. 官方: Cocos2d-x README(介紹了 cocos 命令的使用)
  2. Cocos2d-x游戲打包成Android應用程序(介紹了用eclipse打包的過程)
  3. 搭建 cocos2d-x Android 常見問題
    (解決一個編譯時的錯誤,Can't find right android-platform for project :"%ProjectFolder%\proj.android".The android-platform should be equal/larger than 20
  4. android的logcat詳細用法
  5. How to Build an Android Project with Eclipse
  6. cocos2d-x3.0rc打包apk遇到的一些問題記錄
    (解決一個關於命令行方式創建keystore簽名的問題)
  7. Android 打包簽名 從生成keystore到完成簽名
  8. 官方:Cocos2d Console使用手冊(關於 cocos-console 的使用)
  9. 官方:Cocos2d-console (完整 cocos-console 使用手冊,英文版)

總結
在經過一次發布后,再次使用只需要:

1、在 jni\Android.mk文件中添加需要編譯的 cpp 文件
2、終端輸入如下命令

$ cd PROJECT_PATH
$ cocos run -p android -j 4 --ap 20 -m release


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM