Unity Android Build Failed: Erros de Gradle, SDK e JDK

Unity Android build failed? Veja onde ler o erro real, as causas de Gradle build failed, SDK não encontrado, JDK incompatível, dependência duplicada e minSdk.
Unity Android Build Failed: Erros de Gradle, SDK e JDK
Quando aparece "unity android build failed", a primeira coisa a saber é que a linha vermelha do Console quase nunca é o erro. "Gradle build failed" é o resumo; a causa real está escrita algumas linhas acima, no log completo, e cai quase sempre em seis grupos: versão de Gradle ou do plugin Android, SDK ou NDK não encontrado, JDK errado, dependência duplicada (com o EDM4U no meio), minSdk incompatível e cache corrompido. Este guia mostra onde ler o erro de verdade no Unity 6.3 LTS e qual a causa e a correção de cada um.
No fim tem um checklist para rodar antes de pedir ajuda num fórum, que resolve a maioria dos casos sozinho.
Como ler o erro de build Android
O Console mostra várias mensagens quando a build falha. A ordem de leitura:
- Ignore a última. "Build completed with a result of 'Failed'" e "BuildFailedException" só dizem que falhou.
- Ache a mensagem do Gradle. Clique na entrada com "Gradle build failed" ou "CommandInvokationFailure". O painel de baixo do Console mostra o texto completo. Role até achar
* What went wrong:. A frase logo abaixo é o erro real. - Leia também a primeira mensagem vermelha da lista, não só a última. Quando um erro causa outros, o primeiro costuma ser a origem.
- Se o texto estiver cortado, abra o log completo do editor: no menu de três pontos do Console, Open Editor Log. No Windows ele fica em
%LOCALAPPDATA%\Unity\Editor\Editor.log; no macOS, em~/Library/Logs/Unity/Editor.log. Procure por "What went wrong" com Ctrl+F.
O projeto Gradle que a Unity gera para cada build fica dentro do seu projeto, em Library/Bee/Android/Prj/IL2CPP/Gradle (ou Mono2x no lugar de IL2CPP, se você usa Mono). Quando o erro cita um arquivo build.gradle ou AndroidManifest.xml, é ali que ele está. Ler esse arquivo gerado ajuda a entender o que a Unity montou.
Se você ainda não fez a primeira build Android, comece pelo guia de como gerar APK na Unity, que cobre a instalação certa dos módulos; boa parte dos erros abaixo nasce de pular uma etapa dali.
Unity Android build failed: Gradle
O Gradle é a ferramenta de build do Android. A Unity gera um projeto Gradle e chama o Gradle para empacotar o APK ou AAB. Cada versão da Unity é testada com uma versão específica do Gradle e do Android Gradle Plugin (AGP), e a tabela oficial de compatibilidade da Unity 6.3, consultada em outubro de 2026, é:
| Unity | Gradle | Android Gradle Plugin |
|---|---|---|
| 6000.3.1f1 a 6000.3.16f1 | 8.13 | 8.10.0 |
| 6000.3.17f1 a 6000.3.25f1 | 9.1.0 | 9.0.0 |
| 6000.3.26f1 em diante | 9.3.1 | 9.1.1 |
Repare que a versão muda dentro da própria 6.3, conforme o patch. Isso tem uma consequência prática: se você usa um template Gradle customizado (mainTemplate.gradle, baseProjectTemplate.gradle) criado num patch antigo, ele pode fixar uma versão de plugin que não casa com o Gradle do patch novo. Os sintomas típicos:
Failed to apply pluginouCould not create plugin of type 'AppPlugin': Gradle e AGP em versões incompatíveis. Confira se algum template ou plugin de terceiros fixa a versão do AGP.Minimum supported Gradle version is X: o AGP pedido é mais novo que o Gradle usado. Mesma causa.Unsupported class file major version: o JDK não casa com o Gradle (veja a seção de JDK).
A correção: em Edit > Project Settings > Player > Publishing Settings > Build, veja quais templates customizados estão marcados (Custom Main Gradle Template, Custom Base Gradle Template, Custom Gradle Properties Template e outros). Se você não sabe por que um deles está marcado, provavelmente foi um plugin que ligou. Desmarque, faça uma build, e se passar, recrie o template no patch atual (desmarcar e marcar de novo gera um arquivo novo a partir do modelo da versão instalada) e reaplique só as suas alterações.
SDK e NDK não encontrados
Mensagens como "Android SDK not found", "Unable to locate Android NDK" ou "SDK Platform Tools version is older" apontam para o mesmo lugar: Edit > Preferences > External Tools (no macOS, Unity > Settings > External Tools), seção Android.
- Se as caixas de usar o SDK, o NDK e o JDK instalados com a Unity estão desmarcadas, a Unity procura no caminho que você digitou. Marque as caixas e teste.
- Se marcar mostra um aviso de que não estão instalados, faltou o submódulo Android SDK & NDK Tools no Unity Hub. Volte ao Hub, Installs, Add modules na sua versão.
- Se você precisa de um SDK externo (por exemplo, por causa do Android Studio), confira se a pasta tem as plataformas e as build-tools que o erro cita, pelo SDK Manager do Android Studio.
O problema brasileiro: caminho com acento. Se o seu usuário do Windows é João ou Usuário, o caminho da pasta de cache do Gradle e de arquivos temporários contém caracteres fora do ASCII, e várias ferramentas do Android não lidam bem com isso. O mesmo vale para projetos em pastas como Área de Trabalho ou com espaços e acentos no nome. Os erros variam e quase nunca falam de acento. Teste mover o projeto para um caminho curto e simples, como C:\Projetos\MeuJogo. Se o problema estiver no perfil do usuário, a variável de ambiente GRADLE_USER_HOME apontando para uma pasta sem acento (como C:\gradle) costuma resolver.
JDK: versão e caminho
A documentação de dependências da Unity 6.3 lista o OpenJDK 17 para a série 6000. Os problemas de JDK aparecem como:
Unsupported class file major versionseguido de um número: um JDK diferente do esperado está compilando (o número indica a versão do Java que gerou o arquivo).Could not compile build filecom menção a classes Java.
Duas causas comuns. A primeira é a caixa de usar o JDK instalado com a Unity desmarcada em External Tools, apontando para um Java antigo ou novo demais que você instalou para outra coisa. A segunda é uma variável de ambiente JAVA_HOME ou um Java antigo no PATH interferindo. O próprio rastreador de bugs da Unity registra casos em que um Java antigo instalado no sistema assumiu o lugar do JDK 17.
Correção: marque o JDK instalado com a Unity em External Tools, feche o editor e, se o erro continuar, confira JAVA_HOME nas variáveis de ambiente do sistema. Ele não precisa existir para a Unity funcionar; se aponta para um Java 8 ou 11, remova ou corrija.
Erro de build é o tipo de problema que faz muita gente desistir de publicar o jogo depois de meses de trabalho, justamente porque o jogo está pronto e a última etapa trava sem explicação clara. Ter visto esses erros com alguém explicando o porquê de cada um transforma uma semana de frustração em dez minutos de correção.
Dependências duplicadas e EDM4U
Quando o projeto tem SDKs de anúncio, Firebase, login ou analytics, cada um traz bibliotecas Android próprias. Se dois trazem a mesma biblioteca em versões diferentes, o Gradle falha com:
Duplicate class com.exemplo.Classe found in modules ...Program type already presentManifest merger failed
Quase todos esses SDKs usam o EDM4U (External Dependency Manager for Unity, do Google), que lê os arquivos *Dependencies.xml de cada plugin e resolve as bibliotecas Android num lugar só. O fluxo de correção:
- Procure cópias físicas de
.aarou.jarna pastaAssets/Plugins/Android. Se o EDM4U resolve as dependências pelo Gradle e também existe uma cópia do mesmo.aarali (de uma versão antiga do plugin), você tem a duplicata. Apague a cópia antiga. - Confira se há duas instalações do EDM4U (uma pelo Package Manager e outra como pasta dentro de
Assets, trazida por um SDK). Deixe só uma. - Force a resolução: Assets > External Dependency Manager > Android Resolver > Force Resolve.
- Ative os templates que o EDM4U pede. Em Publishing Settings, versões recentes do EDM4U pedem Custom Main Gradle Template e Custom Gradle Properties Template marcados, para injetar as dependências no Gradle em vez de copiar arquivos.
Para Manifest merger failed, leia a linha seguinte: ela diz qual atributo conflita e em quais bibliotecas. Normalmente é resolvido atualizando o plugin mais antigo.
Target e Min API Level
Dois erros clássicos aparecem aqui.
uses-sdk:minSdkVersion X cannot be smaller than version Y declared in library. Uma biblioteca de algum plugin exige Android mais novo que o Minimum API Level do seu Player Settings. A correção é subir o Minimum API Level para pelo menos o valor Y citado. Isso reduz os aparelhos compatíveis, então confira se o plugin vale a troca. Lembre que a Unity 6.3 suporta Android 7.1 (API level 25) em diante.
Target API e a Google Play. O build passa, mas o envio para a loja é recusado por target API baixo. Desde 31 de agosto de 2026, a Google Play exige que apps novos e atualizações mirem no Android 16 (API level 36) ou superior, segundo a página oficial do Android Developers consultada em outubro de 2026. Em Other Settings, deixe Target API Level em Automatic (highest installed) e confira se a plataforma 36 aparece na lista; se não, atualize o editor para o patch mais recente da 6.3.
Limpar cache e Library
Quando nada no log faz sentido, ou a build quebrou sem você mudar nada, pode ser cache. Em ordem, do mais leve ao mais pesado:
- Feche a Unity antes de apagar qualquer coisa.
- Apague
Library/Bee/Android. É o projeto Gradle gerado e os artefatos de build Android. A próxima build recria tudo. Rápido e seguro. - Apague o cache do Gradle do usuário: a pasta
.gradle/cachesdentro da sua pasta de usuário (ou doGRADLE_USER_HOME, se você configurou). Resolve dependências baixadas corrompidas; a próxima build baixa de novo e demora mais. - Apague a pasta
Libraryinteira. Último recurso. A Unity reimporta todos os assets ao abrir, o que num projeto grande pode levar muito tempo. A pastaLibrarynão deve estar no controle de versão, então não há risco de perder trabalho.
Nunca apague Assets, Packages ou ProjectSettings: ali está o seu projeto. Para quem automatiza builds num servidor, esses mesmos passos viram etapas de limpeza no pipeline, como mostra o guia de builds automatizados e CI/CD para jogos.
Checklist antes de pedir ajuda
Rode na ordem. A maioria dos erros some antes do fim da lista:
- Um projeto vazio novo, na mesma versão do editor, gera APK? Se não, o problema é de instalação (módulos, External Tools, JDK), não do seu projeto.
- Os três submódulos (Android Build Support, OpenJDK, Android SDK & NDK Tools) estão instalados no Hub para esta versão exata?
- Em External Tools, as caixas de usar JDK, SDK e NDK da Unity estão marcadas e sem aviso?
- O caminho do projeto e do usuário está livre de acentos e espaços?
- Algum template Gradle customizado está marcado sem você saber por quê?
- Existe
.aarou.jarduplicado emAssets/Plugins/Android? - Rodou Force Resolve do EDM4U depois de instalar ou atualizar um SDK?
- O Minimum API Level atende o que as bibliotecas pedem?
- Apagou
Library/Bee/Androidcom o editor fechado? - Copiou a frase depois de What went wrong, e não só "Gradle build failed"?
Se precisar abrir um tópico em fórum, mande: a versão exata do editor (6000.3.x), o resultado do item 1, a lista de plugins Android, e o trecho do log a partir de "What went wrong". Com isso alguém consegue ajudar; com "deu Gradle build failed", ninguém consegue.
Próximo passo
Depois de a build passar, crie um perfil de build de teste e um de publicação na janela Build Profiles, para nunca mais alternar configurações na mão. E se você também exporta da Godot, compare a lista de erros com o guia de exportar Godot para Android: SDK, JDK e keystore causam problemas parecidos nas duas engines.
Perguntas frequentes
O que significa Gradle build failed na Unity?
Significa que a etapa final da build Android, feita pelo Gradle, falhou. A mensagem "Gradle build failed" é só o resumo; a causa real está algumas linhas acima no log, normalmente depois de "What went wrong". Pode ser versão de ferramenta, dependência duplicada, minSdk incompatível ou caminho com caracteres especiais.
Qual JDK a Unity 6.3 usa para Android?
A documentação da Unity 6.3 indica o OpenJDK 17, instalado pelo Unity Hub como submódulo do Android Build Support. Se você aponta a Unity para outro JDK em External Tools, ele precisa ser compatível; o caminho mais seguro é usar o que vem com o editor.
Como resolver Android SDK not found na Unity?
Instale o submódulo Android SDK & NDK Tools pelo Unity Hub e, em Edit > Preferences > External Tools, marque a opção de usar o SDK instalado com a Unity. Se você usa um SDK externo, confira se o caminho existe e se tem as plataformas e build-tools que a Unity pede.
Apagar a pasta Library resolve erro de build Android?
Às vezes, quando o problema é cache corrompido do projeto Gradle gerado. Antes de apagar tudo, tente apagar só a pasta Library/Bee/Android, que é onde a Unity gera o projeto Gradle. Apagar a Library inteira força a reimportação de todos os assets, o que pode levar muito tempo em projetos grandes.


