Estoy tratando de usar el código Kotlin de Moshi para obtener soporte para anotaciones en Kotlin. A pesar de seguir las instrucciones cuidadosamente en la documentación de moshi codegen , la anotación JsonClass en @JsonClass(generateAdapter = true) no se reconoce y recibo el siguiente error:
error: incompatible types: NonExistentClass cannot be converted to Annotation@error.NonExistentClass()
El archivo build.gradle de mi aplicación es el siguiente:
... apply plugin: 'kotlin-kapt' android { ... } dependencies { ... implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation 'com.squareup.retrofit2:retrofit:2.4.0' implementation 'com.squareup.retrofit2:converter-moshi:2.5.0' kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.8.0' } La anotación @JsonClass se reconoce cuando agrego
implementation("com.squareup.moshi:moshi-kotlin:1.8.0") .
Sin embargo, la documentación de Moshi Reflection indica que esta dependencia solo es necesaria si se usa Reflection en lugar de Codegen.
¿Alguna idea de lo que me estoy perdiendo? ¡Gracias!
@JsonClass es un tipo en el artefacto Moshi estándar. El artefacto converter-moshi de Retrofit trae a Moshi transitivamente pero no tiene la última versión de Moshi. Especifique implementation("com.squareup.moshi:moshi:1.8.0") .