CocosCreator1.x配置打包Android App Bundle


准備工作

下載並安裝 Android Studio 4.1.0 及以上版本,下載地址:Android Studio

注意事項:

  • 若游戲項目原來使用 Android Studio 生成用於生成測試的 APK 文件或 APK 發布文件,就必須將 Android Studio 升級至 4.1.0 及以上版本。
  • Android Studio 提供免安裝版本,並且在同一台 PC 機上可同時使用多個不同版本的 Android Studio ,因此研發不需要擔心 Android Studio 升級和多版本共存問題。

配置 Android 工程

具體配置可參考:針對原生代碼或 Java 代碼構建 ,按步驟進行配置。

注意事項:

  • Android Gradle 插件的版本更新為 4.0.0 或更高版本的同時,還需要使用對應的 Gradle 版本,查看 Android Gradle 插件與 Gradle 版本對應關系請見 Gradle
  • 可不導入 Play Core 庫。由於 Cocos2d-x 加載 asset 資源是在 C++ 代碼中,並且由 Cocos2d-x 的游戲框架完成,因此不需要導入 Play Core 庫。其余步驟請按 Google 文檔進行。
  • 若游戲有自動化構建,需要用腳本構建 AAB,可以參考構建 App Bundle

示例

 我的CocosCreator版本是1.8.2,具體實現構建AAB資源思路是:一個工程打包libcocos2djs.so(以下簡稱原工程),然后將打包的libcocos2djs.so放在另一個工程中(一下簡稱新工程,這個工程升級了Gradle版本為4.2.0,因為原工程Gradle版本是3.3.2,升級Gradle之后引擎編譯失敗)

原工程AS打包環境:android-ndk-r14b

 

 新工程升級Gradle后AS打包環境:android-ndk-r14b

 

 1.將原工程打包的libcocos2djs.so庫拷貝到新工程的lib文件夾下

原工程打包成功后生成的libcocos2djs.so文件路徑:build/intermediates/ndkBuild

 

 將對應架構的so庫拷貝到新工程中

 

 2.修改新工程gradle.properties(注意PROP_NDK_MODE=none 跳過編譯cocos引擎)

 

 

 3.修改新工程build.gradle(CocosCreator路徑根據情況修改)

 

 

4.修改新工程Application.mk(APP_STL := c++_static)

 

 

 5.在項目的頂級目錄中,創建以 Asset Pack 為名稱的 Module,如 Assets_mutidex (Asset Pack 名稱必須以字母開頭,並且只能包含字母、數字和下划線)

 

 

 6.修改Asset Pack目錄下的build.gradle文件(如果不存在則創建一個)內容如下

// In the asset pack’s build.gradle file:
apply plugin: 'com.android.asset-pack'

assetPack {
    packName = "Assets_mutidex" // Directory name for the asset pack
    dynamicDelivery {
        deliveryType = "install-time"
    }
}

 

 

 7.在項目的應用 build.gradle 文件中,添加項目中每個 Asset Pack 的名稱,如下所示:

 

 

 8.在項目的 settings.gradle 文件中,添加項目中的所有 Asset Pack,如下所示:

 

 

 9.在 Asset Pack 目錄中,創建以下子目錄:src/main/assets,將需要走AAB的游戲資源放到此路徑下(需要注意的是游戲base路徑和pack路徑不能有重復路徑的文件)

 

 

10. 執行到此步驟 Android 工程已完成,還需加載 installTime 的 APK 文件才能正常運行游戲,添加Asset Pack搜索路徑

修改AppActivity.java

 

 

 修改啟動運行的main.js

 

 

 

打包運行和測試

經過以上的步驟后可以在 Android Studio 中生成 AAB 文件,接着可使用 bundletool 工具 安裝到真機進行測試

 

 

 將生成的aab文件用bundletool工具生成apks

java -jar bundletool.jar build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd

例如:

  

 將APK部署到連接的設備

java -jar bundletool.jar install-apks --apks=/MyApp/my_app.apks

 


免責聲明!

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



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