Introdução: Seu projeto Kotlin quebrou de repente? Não entre em pânico!
\n\nVocê está escrevendo código em Kotlin, tudo funciona, e de repente — bum! — na compilação aparece uma mensagem vermelha: Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error. See log for more details. Se você já trabalhou com desenvolvimento Android, conhece aquela sensação quando o Gradle decide que hoje não é seu dia. Este erro é um dos mais populares no Stack Overflow, e hoje vamos analisá-lo do início ao fim.
Neste tutorial, não vamos apenas copiar uma resposta da internet. Vamos entender por que o Kotlin às vezes se recusa a compilar e aprender a corrigir isso de forma rápida e indolor. Vamos lá!
\n\nO que esse erro realmente significa?
\n\nVamos direto ao ponto. A mensagem Execution failed for task ':app:compileDebugKotlin'. > Compilation error nos diz que o compilador Kotlin encontrou algo no seu código que não lhe agrada. O mais traiçoeiro é que muitas vezes o Android Studio exibe essa mensagem genérica, mas esconde a causa específica nos logs. A frase "See log for more details" não é vazia. É nos logs (Build Output ou Run) que você deve procurar o verdadeiro problema.
Mas não se apresse em vasculhar os logs. Existem alguns cenários típicos que causam esse erro em 90% dos casos.
\n\nPrincipais causas (lista para autodiagnóstico)
\n- \n
- Incompatibilidade de versões do Kotlin e do plugin Gradle. Isso é clássico. Você atualizou o Kotlin, mas esqueceu de atualizar o plugin no
build.gradle— e recebeu o erro. \n - Conflito de anotações. Kotlin é muito rigoroso com anotações (por exemplo,
@Nullablevs@NotNull). O uso incorreto pode quebrar a compilação. \n - Alvo JVM incorreto. Se você usa recursos de uma versão nova do Kotlin, mas o alvo JVM é antigo, o compilador reclamará. \n
- Problemas com cache. Sim, o Gradle e o Android Studio às vezes "esquecem" que você corrigiu o erro e continuam exibindo o antigo. \n
- Erros de sintaxe em Kotlin. Um parêntese faltando, um tipo incorreto — tudo isso pode causar exatamente esse erro, embora a mensagem pareça ser um problema geral de compilação. \n
Passo 1: Leia os logs corretamente (a principal habilidade do desenvolvedor)
\n\nAntes de mudar qualquer coisa, abra a aba Build no Android Studio (geralmente fica na parte inferior). Se estiver vazia, clique em View → Tool Windows → Build. Procure por linhas vermelhas. A informação mais importante geralmente começa com e: ou error:.
Exemplo de um log real:
\ne: /Users/user/Project/app/src/main/java/com/example/MainActivity.kt: (12, 5): Null can not be a value of a non-null type String\n\nViu? O compilador diz honestamente: "Na linha 12, caractere 5, você está tentando atribuir null a uma variável que não pode ser null". Simples assim. Agora você sabe onde procurar.
\n\nPasso 2: As três soluções mais comuns (com código)
\n\nVamos analisar cada caso com exemplos. Abra seu build.gradle (Module: app).
Solução nº1: Atualize o Kotlin e o plugin Gradle
\nIsso é a primeira coisa a verificar. Certifique-se de que a versão do Kotlin no build.gradle (nível do projeto) corresponde à versão do plugin.
// build.gradle (Project level)\nbuildscript {\n ext.kotlin_version = '1.9.22' // Verifique a versão atual em kotlinlang.org\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n classpath 'com.android.tools.build:gradle:8.2.2' // A versão do Gradle deve ser compatível com o Kotlin\n classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n }\n}\n\nSe você usa Kotlin 1.8+, certifique-se de que o plugin Gradle também não esteja desatualizado. Após a atualização, clique em "Sync Now".<