JakeWharton/retrofit2-kotlinx-serialization-converter

Update Kotlin and KotlinX.Serialization version

indrih17 opened this issue · 5 comments

Version 0.4.0 of this library crashed with Kotlin version 1.3.70 because Kotlin/kotlinx.serialization#736
Please, update Kotlin version to 1.3.70 and KotlinX.Serialization version to 0.20.0.

@indrih17 Serialization plugin had been updated. It shouldn't cause any crash. This converter works properly for me.

@nuhkoca if you have kotlin version 1.3.70 and kotlinx.serialization version 0.20.0, then the converter fails on version 0.4.0.

@indrih17 It is not happening for me, interesting!

GSala commented

I got this crash. Might be related, but I don't know if it's on this library or on kotlinx.serialization.

     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at kotlinx.serialization.SerializationKt.invokeSerializerGetter(Serialization.kt:37)
        at kotlinx.serialization.SerializationKt.compiledSerializer(Serialization.kt:11)
        at kotlinx.serialization.PlatformUtilsKt.serializer(PlatformUtils.kt:11)
        at kotlinx.serialization.JvmResolvingKt.serializerByTypeToken(JvmResolving.kt:61)
        at kotlinx.serialization.JvmResolvingKt.serializerByTypeToken(JvmResolving.kt:84)
        at com.jakewharton.retrofit2.converter.kotlinx.serialization.Factory.responseBodyConverter(Factory.kt:23)
        at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:352)
        at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:335)
        at retrofit2.HttpServiceMethod.createResponseConverter(HttpServiceMethod.java:113)
        at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:82)
        at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:37)
2020-03-05 22:28:51.176 6842-6842/com.dev.appE/AndroidRuntime:     at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:192)
        at retrofit2.Retrofit$1.invoke(Retrofit.java:149)
        at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
        	... 16 more
     Caused by: java.lang.NoSuchMethodError: No direct method <init>(Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V in class Lkotlinx/serialization/internal/SerialClassDescImpl; or its super classes (declaration of 'kotlinx.serialization.internal.SerialClassDescImpl' appears in /data/app/com.dev.app-x1pCW_pzXi5TImI6mGNzlA==/base.apk)
        at ***.Build$$serializer.<clinit>(Build.kt:12)
        at ***.Build$Companion.serializer(Unknown Source:0)
        	... 31 more

Released 0.5.0 with the fix from @ychescale9.