Clase de datos KotlinReflectionInternalError

Recibí el siguiente error al intentar utilizar una class de datos como un tipo de resultado en un service de modificación.

11-15 11:35:38.345 14693-14693/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.app, PID: 14693 kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Incorrect resolution sequence for Java constructor public constructor AuthenticationResponse() defined in com.example.app.data.auth.AuthenticationResponse[JavaClassConstructorDescriptor@6d57dc3] (kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass: class com.example.app.data.auth.AuthenticationResponse) at kotlin.reflect.jvm.internal.RuntimeTypeMapper.mapSignature(RuntimeTypeMapper.kt:202) at kotlin.reflect.jvm.internal.KFunctionImpl.<init>(KFunctionImpl.kt:46) at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:87) at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:39) at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93) at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32) at kotlin.reflect.jvm.internal.KClassImpl$Data.getConstructors(Unknown Source:7) at kotlin.reflect.jvm.internal.KClassImpl.getConstructors(KClassImpl.kt:192) at kotlin.reflect.full.KClasses.getPrimaryConstructor(KClasses.kt:40) at com.squareup.moshi.KotlinJsonAdapterFactory.create(KotlinJsonAdapter.kt:160) at com.squareup.moshi.Moshi.adapter(Moshi.java:100) at retrofit2.converter.moshi.MoshiConverterFactory.responseBodyConverter(MoshiConverterFactory.java:90) at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:328) at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:311) at retrofit2.ServiceMethod$Builder.createResponseConverter(ServiceMethod.java:735) at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:168) at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:169) at retrofit2.Retrofit$1.invoke(Retrofit.java:146) at java.lang.reflect.Proxy.invoke(Proxy.java:913) at $Proxy4.cnetworkingentialsLogin(Unknown Source) at com.example.app.data.rest.service.AuthenticationService$DefaultImpls.cnetworkingentialsLogin$default(AuthenticationService.kt:37) at com.example.app.ui.module.auth.AuthenticatorActivity.login(AuthenticatorActivity.kt:204) at com.example.app.ui.module.auth.AuthenticatorActivity.access$login(AuthenticatorActivity.kt:37) at com.example.app.ui.module.auth.AuthenticatorActivity$onCreate$4.onEditorAction(AuthenticatorActivity.kt:107) at android.widget.TextView.onEditorAction(TextView.java:5909) at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138) at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:360) at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

Para ser sincero, ni siquiera estoy seguro de lo que significa este error y no he encontrado muchos resources al respecto. La descripción de la class es bastante vaga:

Señales de que la reflexión de Kotlin había alcanzado un estado inconsistente del cual no se puede recuperar.

El único lugar que usa el reflection está dentro de Moshi, pero no puedo entender qué está causando el problema.


Código

Esta es la class de datos:

 data class AuthenticationResponse( @Json(name = "access_token) val accessToken: String, @Json(name = "refresh_token) val refreshToken: String, @Json(name = "user_id") val userId: String, val scope: String ) 

AuthenticationService :

 interface AuthenticationService { @FormUrlEncoded @POST("oauth/token") fun cnetworkingentials( @Field("username") username: String, @Field("password") password: String, @Field("scope") scope: String, @Field("grant_type") grantType: String = "password" ): Flowable<AuthenticationResponse> @FormUrlEncoded @POST("oauth/token") fun refreshToken( @Field("refresh_token") refreshToken: String, @Field("scope") scope: String, @Field("grant_type") grantType: String = "refresh_token" ): Flowable<AuthenticationResponse> } 

Estoy usando Moshi como el convertidor JSON, y he incluido KotlinJsonAdapterFactory en el Moshi.Builder .


Actualizar

Puedo reproducir el error de manera confiable al intentar crear un adaptador de respuesta de AuthenticationResponse usando Moshi directamente.

 val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() val json = "{\"user_id\": 000000," + "\"access_token\": \"testAccessToken\"," + "\"expires_in\": 3600," + "\"token_type\": \"Bearer\"," + "\"refresh_token\": \"testRefreshToken\"," + "\"scope\": \"test\"}" val adapter = moshi.adapter<AuthenticationResponse>(AuthenticationResponse::class.java) val response = adapter.fromJson(json) Timber.d("response=$response") 

El código anterior falla con el mismo KotlinReflectionInternalError al intentar crear el valor del adapter .