Unity中配置Android环境

电脑升级之后,发现某些软件不能用了,需要进行重新安装,环境需要重新配置,这里简单记录一下 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 还是不能用,直接运行其中的程序,会报未知开发者警告,这里有两种办法:

  1. 命令行执行sudo spctl --master-disable,然后在系统偏好设置 -> 安全 -> 任何来源
  2. 第二种是在打包的过程中,每次都需要在偏好设置中进行允许,整个过程可能需要很多次才能完成。

Unity 配置

至此环境基本安装完成,下面需要再 Unity 中进行配置,打开 Unity -> Preference -> External Tools,选择 SDK、JDK、NDK 的安装目录,点击 Browser 会自动查找,需要注意找到的版本是不是对的,如果不对手动进行选择。

编译

将项目切换 Android 平台,在 Player Setting 中设置好 Package NameVersionCompany 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 指定的版本。