# Unity Build Automation での Android ビルドの失敗

> 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)
