Moshi 1.9.x Cannot serialize Kotlin type Moshi 1.9.x Cannot serialize Kotlin type json json

Moshi 1.9.x Cannot serialize Kotlin type


The error message specifically says Please use KotlinJsonAdapter from the moshi-kotlin artifact or use code gen from the moshi-kotlin-codegen artifact

As per the Kotlin part of the readme, you must add the KotlinJsonAdapterFactory if you're not using Moshi's codegen. This was a specific behavior change in Moshi 1.9 as per the blog post about Moshi 1.9.

Moshi.Builder()    .add(AbsPlayerConverter)    .add(AbsRegionConverter)    .add(AbsTournamentConverter)    .add(MatchConverter)    .add(RankedPlayerConverter)    .add(SimpleDateConverter)    .add(KotlinJsonAdapterFactory())    .build()

And make sure you're using implementation("com.squareup.moshi:moshi-kotlin:1.9.1")


I'm using retrofit and I had to do the following:

In the build.grade:

implementation "com.squareup.moshi:moshi-kotlin:$moshiVersion"

In my repository:

val moshi = Moshi.Builder()    .add(KotlinJsonAdapterFactory())    .build()val retrofit = Retrofit.Builder()    .baseUrl(WEB_SERVICE_URL)    .addConverterFactory(MoshiConverterFactory.create(moshi))    .build()