电脑升级之后,发现某些软件不能用了,需要进行重新安装,环境需要重新配置,这里简单记录一下 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 指定的版本。