电脑升级之后,发现某些软件不能用了,需要进行重新安装,环境需要重新配置,这里简单记录一下 Unity Android 开发环境配置。
软件版本:
- 操作系统:macOS 10.15.1
 - Unity 版本:2018.2.5 f1
 - Android Studio 版本:3.6.1
 - JDK 版本:1.8.0_241 (8u241)
 - NDK 版本:r13b (IL2CPP需要)
 
下载地址:
- Android Studio: 3.6.1
 - JDK,NDK:建议直接从 Unity 中进行下载,具体步骤是: 
Unity -> Preference -> External Tools点击download进行下载,其他版本打包时可能报错。 
JDK 安装
如果需要查看本机已经安装的 JDK,可以通过如下命令:
1  | /usr/libexec/java_home -V  | 
Android SDK 安装
在 AS 下载完成之后,打开 SDK Manager 下载 SDK,安装 Build Tools,在安装 Build Tools 的时候需要注意,一定要安装正式版,不要安装 RC版等其他版本。
SDK Manager 会将 SDK 默认安装到 /Users/xxx/Library/Android/sdk
NDK 安装
ndk 是编译 IL2CPP 时需要用的,但是采用 mono 打包时也会用到 ndk 的 tool-chains,所以 ndk 是必须要安装的,只不过 IL2CPP 需要在 Unity 设置 ndk 路径。
ndk 不能通过 SDK Manager 进行安装,因为 Unity 需要特定版本的 ndk(2018对应 ndk r13b) 其它版本 Unity 无法识别,通过 Unity 内提供的方式进行下载,将下载的 NDK 解压到 sdk/ndk 目录,如果没有可以手动创建一个。
但是现在 NDK 还是不能用,直接运行其中的程序,会报未知开发者警告,这里有两种办法:
- 命令行执行
sudo spctl --master-disable,然后在系统偏好设置 -> 安全 -> 任何来源; - 第二种是在打包的过程中,每次都需要在偏好设置中进行允许,整个过程可能需要很多次才能完成。
 
Unity 配置
至此环境基本安装完成,下面需要再 Unity 中进行配置,打开 Unity -> Preference -> External Tools,选择 SDK、JDK、NDK 的安装目录,点击 Browser 会自动查找,需要注意找到的版本是不是对的,如果不对手动进行选择。
编译
将项目切换 Android 平台,在 Player Setting 中设置好 Package Name,Version,Company Name等信息,Build System采用默认 Gradle,不勾选 Export Project,点击 Build 进行打包,如果配置正确,将成功生成 apk。
遇上的问题
编译失败后,可以在 Console 看到相关的错误信息,总结以下几个:
问题 1
1  | No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android  | 
造成该问题是原因是,Unity 会用 sdk 目录下的 ndk,而非 Unity 配置中指定的路径,我这里是存在一个 ndk-bundle 目录,直接将 ndk-bundle 删除即可。
问题 2
1  | Failed to find Build Tools revision 30.0.0  | 
原因是我之前在 SDM Manager 中安装 Build Tools 时,安装了 30.0.0-RC 版,其安装目录是 sdk/build-tools/30.0.0-rc,可能是 Unity 会查找sdk/build-tools/30.0.0,结果肯定是找不到。
解决办法是卸载了 rc 版本,安装正式发布版。
问题 3
1  | ApkSignerTool has been compiled by a more recent version of the Java Runtime  | 
这是 JDK 版本低的问题,最好安装 Unity 指定的版本。