Corrigir compilação Kotlin no Android: análise do erro compileDebugKotlin

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Seu projeto Kotlin quebrou de repente? Não entre em pânico!

\n\n

Você 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.

\n\n

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\n

O que esse erro realmente significa?

\n\n

Vamos 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.

\n\n

Mas não se apresse em vasculhar os logs. Existem alguns cenários típicos que causam esse erro em 90% dos casos.

\n\n

Principais 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, @Nullable vs @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
\n\n

Passo 1: Leia os logs corretamente (a principal habilidade do desenvolvedor)

\n\n

Antes 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:.

\n\n

Exemplo de um log real:

\n
e: /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\n

Viu? 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\n

Passo 2: As três soluções mais comuns (com código)

\n\n

Vamos analisar cada caso com exemplos. Abra seu build.gradle (Module: app).

\n\n

Solução nº1: Atualize o Kotlin e o plugin Gradle

\n

Isso é 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.

\n\n
// 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\n

Se 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".<

Blogs

Book Recommendations