Android build fails in Unity Build Automation

Symptoms

  • Android builds fail for an unclear reason.
  • Android builds fail and other targets build correctly.
  • Android builds fail in UBA but work locally.

Cause

Unity Build Automation runs the Unity Editor in batchmode to execute your builds, and uses the default Android tools (JDK/SDK) to complete them. When your Android build fails in the service but works locally or other targets seem to work correctly, the root cause is often incompatible Android tools.

Failures due to Android tool often have the message Gradle Build failed in the logs. Gradle is the build system that Unity uses for Android builds.

Resolution

The first step to resolve this issue is to ensure you can build your project locally in batch mode with the following tool versions:

  • The Unity Editor.
  • The JDK (the default version that ships with the chosen version of the Editor).
  • The Android SDK (either the default version or as specified in your advanced target configuration).

You also need to validate the version of Gradle that you use.

Note: Check the versions of any project dependencies and ensure that they're pinned. Often builds begin to fail when dependency versions upgrade and require a newer Unity version or SDK version than you use for the build.

If your project does build locally, take note of the versions of the tools you used and ensure they match with the versions you use in the Unity Build Automation service. To check your local version of Gradle you can use the command gradle --version in the terminal.

If your build works locally in batchmode but fails in the Unity Build Automation service with the same tools and versions, please open a support ticket so the support team can investigate further. To submit a ticket from the Unity Cloud Dashboard, open DevOps and select Help & Support > Ticket > File a ticket.

Additional resource