Arregla la compilación de Kotlin en Android: análisis del error compileDebugKotlin

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿Tu proyecto en Kotlin se rompió de repente? ¡No entres en pánico!

\n\n

Estás escribiendo código en Kotlin, todo funciona, y de repente — ¡pum! — al compilar aparece un mensaje rojo: Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error. See log for more details. Si alguna vez has trabajado con desarrollo Android, conoces esa sensación cuando Gradle decide repentinamente que hoy no es su día. Este error es uno de los más populares en Stack Overflow, y hoy lo analizaremos de principio a fin.

\n\n

En este tutorial no solo copiaremos una respuesta de internet. Entenderemos por qué Kotlin a veces se niega a compilar y aprenderemos a solucionarlo rápida y sin dolor. ¡Vamos allá!

\n\n

¿Qué significa realmente este error?

\n\n

Vamos al grano. El mensaje Execution failed for task ':app:compileDebugKotlin'. > Compilation error nos indica que el compilador de Kotlin encontró algo en tu código que no le gusta. Lo más engañoso es que a menudo Android Studio muestra este mensaje genérico, pero la causa concreta la oculta en los registros. La frase "See log for more details" no son palabras vacías. Es en los registros (Build Output o Run) donde debes buscar el verdadero problema.

\n\n

Pero no te apresures a revisar los registros. Hay varios escenarios típicos que causan este error en el 90% de los casos.

\n\n

Causas principales (lista para autodiagnóstico)

\n
    \n
  • Incompatibilidad de versiones de Kotlin y el plugin de Gradle. Esto es un clásico. Actualizaste Kotlin, pero olvidaste actualizar el plugin en build.gradle — y obtuviste el error.
  • \n
  • Conflicto de anotaciones. Kotlin es muy estricto con las anotaciones (por ejemplo, @Nullable vs @NotNull). Un uso incorrecto puede romper la compilación.
  • \n
  • Objetivo JVM incorrecto. Si usas funciones de una versión nueva de Kotlin, pero el objetivo JVM es antiguo, el compilador se quejará.
  • \n
  • Problemas con la caché. Sí, Gradle y Android Studio a veces "olvidan" que corregiste un error y siguen mostrando el antiguo.
  • \n
  • Errores de sintaxis en Kotlin. Un paréntesis faltante, un tipo incorrecto: todo esto puede provocar este error, aunque el mensaje parezca un problema general de compilación.
  • \n
\n\n

Paso 1: Leer los registros correctamente (la habilidad principal del desarrollador)

\n\n

Antes de cambiar algo, abre la pestaña Build en Android Studio (generalmente está abajo). Si está vacía, haz clic en View → Tool Windows → Build. Busca las líneas rojas. La información más importante suele comenzar con e: o error:.

\n\n

Ejemplo de un registro 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

¿Ves? El compilador dice honestamente: "En la línea 12, carácter 5, intentas asignar null a una variable que no puede ser null". Es simple. Ahora sabes dónde buscar.

\n\n

Paso 2: Las tres soluciones más comunes (con código)

\n\n

Analicemos cada caso con ejemplos. Abre tu build.gradle (Module: app).

\n\n

Solución n.º 1: Actualizar Kotlin y el plugin de Gradle

\n

Esto es lo primero que debes verificar. Asegúrate de que la versión de Kotlin en build.gradle (a nivel de proyecto) coincida con la versión del plugin.

\n\n
// build.gradle (Project level)\nbuildscript {\n    ext.kotlin_version = '1.9.22' // Verifica la versión actual en kotlinlang.org\n    repositories {\n        google()\n        mavenCentral()\n    }\n    dependencies {\n        classpath 'com.android.tools.build:gradle:8.2.2' // La versión de Gradle debe ser compatible con Kotlin\n        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n    }\n}
\n\n

Si usas Kotlin 1.8+, asegúrate de que el plugin de Gradle también esté actualizado. Después de la actualización, haz clic en "Sync Now".<

Blogs

Book Recommendations