log
java.lang.IllegalArgumentException: Unable to create converter for com.jiulang.wordsfairy.net.NetResult<java.util.ArrayList<com.jiulang.wordsfairy.entity.PostType>>
for method PostService.getHomepageClassifyList
at retrofit2.Utils.methodError(Utils.java:54)
at retrofit2.HttpServiceMethod.createResponseConverter(HttpServiceMethod.java:126)
at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:85)
at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:39)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:202)
at retrofit2.Retrofit$1.invoke(Retrofit.java:160)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy3.getHomepageClassifyList(Unknown Source)
at com.jiulang.wordsfairy.repository.PostRepository$getHomepageClassifyList$2.invokeSuspend(PostRepository.kt:10)
at com.jiulang.wordsfairy.repository.PostRepository$getHomepageClassifyList$2.invoke(Unknown Source:8)
at com.jiulang.wordsfairy.repository.PostRepository$getHomepageClassifyList$2.invoke(Unknown Source:4)
at com.jiulang.wordsfairy.ext.CoroutinesKt$netRequest$2$1.invokeSuspend(Coroutines.kt:24)
at com.jiulang.wordsfairy.ext.CoroutinesKt$netRequest$2$1.invoke(Unknown Source:8)
at com.jiulang.wordsfairy.ext.CoroutinesKt$netRequest$2$1.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:100)
at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:148)
at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
at com.jiulang.wordsfairy.ext.CoroutinesKt$netRequest$2.invokeSuspend(Coroutines.kt:23)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: kotlinx.serialization.SerializationException: Serializer for class 'PostType' is not found.
Mark the class as @Serializable or provide the serializer explicitly.
at kotlinx.serialization.internal.Platform_commonKt.serializerNotRegistered(Platform.common.kt:91)
at kotlinx.serialization.SerializersKt__SerializersJvmKt.reflectiveOrContextual$SerializersKt__SerializersJvmKt(SerializersJvm.kt:114)
at kotlinx.serialization.SerializersKt__SerializersJvmKt.typeSerializer$SerializersKt__SerializersJvmKt(SerializersJvm.kt:86)
at kotlinx.serialization.SerializersKt__SerializersJvmKt.serializer(SerializersJvm.kt:45)
at kotlinx.serialization.SerializersKt.serializer(Unknown Source:1)
at kotlinx.serialization.SerializersKt__SerializersJvmKt.serializer(SerializersJvm.kt:50)
at kotlinx.serialization.SerializersKt.serializer(Unknown Source:1)
at kotlinx.serialization.SerializersKt__SerializersJvmKt.serializer(SerializersJvm.kt:73)
at kotlinx.serialization.SerializersKt.serializer(Unknown Source:1)
at com.jakewharton.retrofit2.converter.kotlinx.serialization.Serializer.serializer(Serializer.kt:24)
at com.jakewharton.retrofit2.converter.kotlinx.serialization.Factory.responseBodyConverter(Factory.kt:28)
at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:362)
at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:345)
at retrofit2.HttpServiceMethod.createResponseConverter(HttpServiceMethod.java:124)
... 22 more
重点在这
Caused by: kotlinx.serialization.SerializationException: Serializer for class 'PostType' is not found.
Mark the class as @Serializable or provide the serializer explicitly.
原因是
kotlin-serialization插件没有安装
解决办法
ext {
kotlin_version = '1.5.31'
}
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
...
}
app/build.gradle
plugins {
...
id "kotlin-parcelize"
...
}
dependencies {
...
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
...
}