Actualización de la versión de Android kotlin a 1.5.0 arrojando un mensaje de error en la compilación

5 minutos de lectura

Ejecutando con la versión ‘1.4.32’ de kotlin, mi proyecto de Android se ejecuta y compila. Intentando actualizar a kotlin ‘1.5.0’ y mi compilación lanza:

Execution failed for task ':app:kaptDefaultsDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

Ni siquiera estoy seguro de por dónde empezar a buscar. ¿Alguien más tiene problemas para actualizar a Kotlin 1.5.0?

  • ¿Puedes ejecutar tu comando junto con –debug? Es posible que vea sus errores.

    – Swayangjit

    6 de mayo de 2021 a las 5:10

avatar de usuario
avatsav

Experimenté el mismo problema hoy. Ejecutó el comando de compilación gradle con --stacktrace y obtuve un seguimiento de pila útil que redujo el problema a la biblioteca de Moshi.

Caused by: java.lang.IllegalStateException: Could not parse metadata! This should only happen if you're using Kotlin <1.1.
    at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.readKotlinClassMetadata(KotlinPoetMetadata.kt:70)
    at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.toImmutableKmClass(KotlinPoetMetadata.kt:50)
    at com.squareup.moshi.kotlin.codegen.MoshiCachedClassInspector.toImmutableKmClass(MoshiCachedClassInspector.kt:22)
    at com.squareup.moshi.kotlin.codegen.MetadataKt.targetType(metadata.kt:109)
    at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.adapterGenerator(JsonClassCodegenProcessor.kt:136)
    at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.process(JsonClassCodegenProcessor.kt:110)
    at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
    at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:175)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
    ... 41 more

Tuve que actualizar Moshi a 1.12.0 y eso hizo el truco.

Aquí hay un registro de cambios para Moshi 1.12.0 que menciona la solución para 1.5.0: https://github.com/square/moshi/blob/master/CHANGELOG.md#version-1120

Problema cuando se informó por primera vez aquí: https://github.com/square/moshi/issues/1324

Otro problema que menciona la solución aquí: https://github.com/square/moshi/issues/1337

Así que te sugiero que ejecutes el comando gradle build con --stacktrace y averigüe qué biblioteca causa la incompatibilidad con el kotlinx-metadata-jvm biblioteca y actualizarla.

  • Ejecutar con –stacktrace resaltó el paquete/lib que estaba causando el problema. Muchas gracias.

    – perdido en la traducción

    6 mayo 2021 a las 16:02

  • Ejecutar con –stacktrace no ayudó, solo mostró otro montón de invocaciones internas, todavía no tengo idea de dónde viene

    – Wacaloon

    11 mayo 2021 a las 16:58

  • Para mi tampoco. Pero no es tan difícil de rastrear, es una de las bibliotecas que usa kapt.

    – Michał Klimczak

    6 de junio de 2021 a las 18:44

  • ¡Gracias! Fue Moshi para mí también. Estuve buscando el problema durante horas.

    – steliosf

    12 de julio de 2021 a las 19:45


  • Eso es todo. moshi es el culpable

    – odifek

    9 de agosto de 2021 a las 17:42

Esto se debe al uso de Dagger de una versión anterior de kotlinx-metadata-jvm. Ver https://youtrack.jetbrains.com/issue/KT-45885

Actualiza tu daga a 2.34

  • Sí, en mi caso fue Dagger. Ejecutar con stacktrace señaló qué dependencia estaba causando el problema. Ojalá pudiera aceptar ambas respuestas;)

    – perdido en la traducción

    6 mayo 2021 a las 16:01

  • Estoy usando Dagger 2.35, sigo recibiendo este error

    – Wacaloon

    11 mayo 2021 a las 16:57

  • @Wackaloon degradado a 2.34

    – shervinox

    15 de mayo de 2021 a las 0:11

  • Ni siquiera tengo daga en mi proyecto, solo koin, cualquiera, también recibo el mismo error

    – kaulex

    19 mayo 2021 a las 18:52

  • 2.36 fue lanzado y está funcionando. Gracias.

    – Chenglong Ma

    4 de junio de 2021 a las 1:34

En mi caso, la daga causó el problema. Actualizar la dependencia funcionó.

implementation 'com.google.dagger:dagger:2.37'
kapt 'com.google.dagger:dagger-compiler:2.37'

  • La versión más nueva es 2.40.

    – William Hu

    11 de noviembre de 2021 a las 10:12

  • Consigue la versión más reciente: github.com/google/dagger/releases

    – Shubham Gupta

    25 de diciembre de 2021 a las 15:58

Este problema volvió a surgir para mí después de actualizar mi proyecto a Kotlin 1.6.0. En mi caso es por la librería de serialización Moshi JSON. Ya han incluido una solución en su próxima versión. Mientras tanto, he vuelto a 1.5.31.

https://github.com/square/moshi/issues/1433

Si otras respuestas no lo ayudaron, y especialmente si tiene una versión alfa o beta de Android Studio, asegúrese de usar JDK integrado con Android Studio. Fue mi caso, usé JDK descargado externo.

Para cambiar JDK vaya a File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle y seleccione Embedded JDK del menú desplegable Gradle JDK.

  • Gracias, me iba a suicidar :/

    – toffor

    17 de diciembre de 2021 a las 9:52

  • Estaba usando JDK 11 para un nuevo proyecto, pero necesito cambiar a JDK 1.8 para un proyecto anterior, espero que esto ayude a alguien.

    – Amós

    17 de enero a las 8:47

  • Muchas gracias, yo también me iba a suicidar. No entiendo por qué esta respuesta es menos voto. La mejor respuesta.

    – Mehmet Gur

    5 abr a las 19:03

avatar de usuario
Soorya

Tuve este problema al actualizar la versión de Kotlin a 1.6.10

Para solucionarlo, tuve que actualizar la versión de dagger a 2.36 o superior y usé 2.40.5

implementation "com.google.dagger:dagger:2.40.5”

kapt "com.google.dagger:dagger-compiler:2.40.5"

Para encontrar las últimas versiones de daga: https://github.com/google/dagger/releases

  • Gracias, me iba a suicidar :/

    – toffor

    17 de diciembre de 2021 a las 9:52

  • Estaba usando JDK 11 para un nuevo proyecto, pero necesito cambiar a JDK 1.8 para un proyecto anterior, espero que esto ayude a alguien.

    – Amós

    17 de enero a las 8:47

  • Muchas gracias, yo también me iba a suicidar. No entiendo por qué esta respuesta es menos voto. La mejor respuesta.

    – Mehmet Gur

    5 abr a las 19:03

avatar de usuario
Balflear

Debe verificar cuál de sus dependencias probablemente depende de los nuevos cambios de kotlin en la versión 1.5.0 e intentar actualizarlos. Para mí, la habitación y la daga estaban causando problemas, la actualicé a las últimas versiones y ahora no tengo problemas:

  • espacio para: 2.3.0
  • daga a: 2.35.1

  • Y Moshi a 1.12.0 y luego IDE se queja de que Kotlin 1.5.0 no es compatible con Compose (en mi caso)

    – MohammadReza

    20 de mayo de 2021 a las 11:24

  • esto me ayudó Tuve un problema después de actualizar la versión de Kotlin a “1.5.10”. En mi caso, actualicé la versión de la sala porque estoy usando la sala en mi proyecto.

    -Gulnaz Ghanchi

    8 de septiembre de 2021 a las 6:05


¿Ha sido útil esta solución?