前言
在我所經歷的項目組中有這幾種方法來生成APK
-
直接在Unity生成APK,可以接入SDK
-
使用Unity導出Android Studio工程手動生成APK
-
使用Unity導出Android Studio工程命令行離線生成APK
這里記錄一下我在項目組使用Android Studio出包的筆記。
使用Unity導出Android Studio工程前建議查看我之前的文章《Unity2019及Unity2020打包android的環境配置》,主要介紹替換或修改Unity安裝目錄下的baseProjectTemplate.gradle,把鏈接指向國內能加快速度。
說明:我把Android Studio簡稱為AS,AS生成APK使用gradle來構建。
准備知識:
- 通過Unity導出的Android Studio和Google安卓原生工程的結構圖對比
- 不同版本的Unity要求的NDK版本和兩者對應關系表(Unity NDK Version Match)
- Unity2019使用Gradle命令行(編譯)出安卓包
說明:在AS生成apk,as會根據配置幫你下載gradle和其它依賴文件,如果你不使用命令行,則不需要手動下載和配置gradle到環境變量中。
我打包使用的軟件環境:
- Unity版本:2019.3.7f1
- Android Studio 4.1.3
- Jdk:1.8.0_181
- ndk:https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip
- win10 企業版 ltsc 1809
Unity導出Android Studio工程
使用Unity導出Android Studio工程,需要的環境:JDK,Android SDK,NDK(IL2CPP必須要NDK,但是導出Mono的包則不需要NDK)
NDK官網下載:https://developer.android.google.cn/ndk/downloads/
不同版本的Unity需要的ndk版本也不相同,比如2018.4需要ndk-r16b,而2019.3則需要ndk-r19,注意大小版本號要完全一致。
關於Unity不同版本要求的NDK版本,可以見這篇文章《不同版本的Unity要求的NDK版本和兩者對應關系表(Unity NDK Version Match)》
Unity所需要的gradle版本關系
在unity安裝目錄下的 baseProjectTemplate.gradle 中可以修改android gradle plugin version
Unity version | Gradle version |
---|---|
2020.1 | 5.6.4 |
2018.4 starting from 2018.4.4f1 2019.1 starting from 2019.1.7f1, 2019.2, 2019.3, and 2019.4 | 5.1.1 |
2018.3, 2018.4 up to and including 2018.4.3f1 2019.1 up to and including 2019.1.6f1 | 4.6 |
2018.2 | 4.2.1 |
2018.1 | 4.0.1 |
2017.4, starting from 2017.4.17 | 4.6 |
2017.4 up to and including 2017.4.16 | 4.0.1 |
2017.1, 2017.2 | 2.14 |
使用Android Studio生成APK
- 使用Android Studio打開工程
- 點擊 Build -> Generate Signed Bundle/APK ,然后選擇APK
- 選擇keystore和輸入密碼
- Build Type選擇Release,Signature Versions,v1必須勾選,V2建議勾選
- 等待AS build完成,根據電腦配置所需要的時間不同
- 出現BUILD_SUCCESS ,就生成成功了,生成的APK放在:項目工程release\xxx-release.apk
Signature Versions中V1和V2
如果生成的APK在模擬器上無法安裝,嘗試只勾選V1
有關 Signature Versions中V1和V2的資料:《Android Studio 打包時 Signature Version V1 V2》
經測試:只勾選了V2,在MUMU模擬器上無法安裝APK,而在安卓11的手機上是可以安裝的。這是因為V2只對安卓7以上系統有效,而模擬器的安卓版本一版都比較低,比如mumu的安卓6