前言
在我所经历的项目组中有这几种方法来生成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放在:项目工程releasexxx-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