java.lang.IncompatibleClassChangeError después de actualizar a kotlin RC1 (1.0.0-rc-1036)

Después de actualizar a kotlin RC1 (1.0.0-rc-1036), aparece este error:

java.lang.IncompatibleClassChangeError: se esperaba que el método 'java.lang.Object kotlin.Lazy.getValue ()' fuera de tipo interfaz, pero en su lugar se encontró que era de tipo virtual (statement de 'java.lang.reflect.ArtMethod' aparece en /system/framework/core-libart.jar)

Uso perezoso en uno de mi class:

val api by lazy { val client = OkHttpClient() ... } 

De las notas de la versión :

Lazy ahora es una interfaz abierta para la implementación

Pero no puedo entender lo que tengo que cambiar para que mi código vuelva a funcionar …

Cuando el código se comstack contra la biblioteca estándar kotlin-stdlib-1.0.0-rc-1036.jar el comstackdor ve a Lazy como una interfaz y genera la instrucción INVOKEINTERFACE para get el valor de su propiedad:

 INVOKEINTERFACE kotlin/Lazy.getValue ()Ljava/lang/Object; 

En caso de que, en el momento de la ejecución, se cargue Lazy desde la biblioteca estándar pre-RC, se trata de una class y no de una interfaz. Aquí es donde JVM detecta esa incoinheritance y lanza un IncompatibleClassChangeError .

Por lo tanto, debe asegurarse de que no tenga una biblioteca estándar antigua disponible para el cargador de classs en time de ejecución.

Si usa Gradle, siga las instrucciones en https://kotlinlang.org/docs/reference/using-gradle.html#configuring-dependencies para configurar / actualizar la dependencia en la biblioteca estándar.

  • En la biblioteca de Injekt para Kotlin, ¿cómo inyecto funciones en lugar de solo valores?
  • ¿Es aplicable escribir un controller JDBC en Kotlin?
  • Carga concurrente de files S3 a través de Koutlin Coroutines
  • Diferencia entre los types de list y matriz en Kotlin
  • ¿Cómo enviar datos de text al canal Thinkspeak desde la aplicación de Android?
  • ¿Cómo usar la inheritance simple para la class de datos?
  • ¿Por qué no puedo referirme a un object nested de val o typealias que se refiere a un object?
  • Escribir en parcer valor nulo en kotlin
  • Elegir una estrategia a través de la configuration JSON
  • Una list de files descargados es nula
  • Kotlin: utilizando los methods estáticos de google-guava como extensiones