# Android 构建在 Unity Build Automation 中失败

> Resolve Android build failures in Unity Build Automation and identify common causes.

## 症状##symptoms

* Android 构建因不明原因失败。
* Android 构建失败，而其他目标构建正常。
* Android 构建在 UBA 中失败，但在本地构建正常。

## 原因##cause

Unity Build Automation 通过以 [`batchmode`](./overview.md#run-locally-in-batch-mode) 运行 Unity 编辑器来执行构建，并使用默认的 Android 工具 (JDK/SDK) 来完成构建。当 Android 构建在该服务中失败，但在本地正常，或者其他目标似乎构建正常时，根本原因通常是 Android 工具不兼容。

由 Android 工具导致的失败通常在日志中会有 `Gradle Build failed` 消息。[Gradle](https://docs.unity3d.com/Manual/android-gradle-overview.html) 是 Unity 用于 Android 构建的构建系统。

## 解决方案##resolution

解决此问题的第一步是确保能够使用以下工具版本以批处理模式在本地构建项目：

* Unity 编辑器。
* JDK（所选编辑器版本附带的默认版本）。
* Android SDK（默认版本或高级目标配置中指定的版本）。

另外还需要验证所使用的 Gradle 版本。

> **Note:**
>
> **注意**：检查任何项目依赖项的版本，并确保它们已固定。通常，当依赖项版本升级，并且需要比构建中所用更新的 Unity 版本或 SDK 版本时，构建就会开始失败。

如果项目在本地能够构建，请记录所使用的工具版本，并确保它们与在 Unity Build Automation 服务中使用的版本相匹配。要检查 Gradle 的本地版本，可以在终端中使用命令 `gradle --version`。

如果本地在 [`batchmode`](./overview.md#run-locally-in-batch-mode) 下能够正常构建，但使用相同的工具和版本在 Unity Build Automation 服务中却构建失败，请提交支持工单，以便支持团队可以进一步调查。要从 Unity Dashboard 提交工单，请打开 **DevOps**，然后选择 **Help & Support（帮助与支持）**> **Ticket（工单）**> **File a ticket（提交工单）**。

## 其他资源##additional-resource

* [按编辑器版本显示的默认 Android 工具](https://docs.unity3d.com/Manual/android-sdksetup.html#supported-dependency-versions)
