kevin.cianfarini
08/03/2019, 4:50 PMjava.lang.IllegalArgumentException: Unable to create converter for com.kevincianfarini.saddle.data.network.PaginatedResponse<com.kevincianfarini.saddle.Artist>
for method SaddleAPI.getArtists
at retrofit2.Utils.methodError(Utils.java:52)
at retrofit2.HttpServiceMethod.createResponseConverter(HttpServiceMethod.java:115)
at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:82)
at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:37)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
at retrofit2.Retrofit$1.invoke(Retrofit.java:149)
at java.lang.reflect.Proxy.invoke(Proxy.java:913)
at $Proxy0.getArtists(Unknown Source)
at com.kevincianfarini.saddle.data.network.saddle.SaddleAPIManager.getArtists(SaddleAPIManager.kt:11)
at com.kevincianfarini.saddle.data.repository.ArtistRepository$syncChannel$2.invokeSuspend(ArtistRepository.kt:28)
at com.kevincianfarini.saddle.data.repository.ArtistRepository$syncChannel$2.invoke(Unknown Source:33)
at com.kevincianfarini.saddle.data.repository.Repository$exhaustPagination$2$1.invokeSuspend(Repository.kt:41)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kevin.cianfarini
08/03/2019, 4:51 PMcom.kevincianfarini.saddle.Artist
is a model object generated by SQLDelight. I tried using Artist.Impl
which didn't help. Not quite sure what the problem it's complaining about is.kevin.cianfarini
08/03/2019, 4:56 PMPaginatedResponse
looks like this data class PaginatedResponse<out T>(
val next: Int?,
val count: Int,
val data: List<T>
)
Dominaezzz
08/03/2019, 5:02 PM@Serializable
?kevin.cianfarini
08/03/2019, 5:46 PM@Serializable
since some of the classes are generated from SQLDelightjw
08/03/2019, 6:28 PMkevin.cianfarini
08/03/2019, 10:38 PM@Serializer(forClass=Data::class)
object ExtDataSerializer
Dominaezzz
08/03/2019, 11:42 PMkevin.cianfarini
08/04/2019, 1:12 AMkevin.cianfarini
08/04/2019, 6:38 PMkevin.cianfarini
08/04/2019, 6:38 PMCaused by: kotlinx.serialization.SerializationException: Can't locate argument-less serializer for class com.kevincianfarini.saddle.Artist$Impl (Kotlin reflection is not available). For generic classes, such as lists, please provide serializer explicitly.
kevin.cianfarini
08/04/2019, 6:39 PMArtist$Impl
is a class generated by SQLDelight and has a serializer associated with it via the method above. The class looks like this.kevin.cianfarini
08/04/2019, 6:39 PMinterface Artist {
val id: Long
val name: String?
val image: String?
data class Impl(
override val id: Long,
override val name: String?,
override val image: String?
) : Artist {
override fun toString(): String = """
|Artist.Impl [
| id: $id
| name: $name
| image: $image
|]
""".trimMargin()
}
}
kevin.cianfarini
08/04/2019, 6:40 PMDominaezzz
08/04/2019, 6:41 PMArtist
?kevin.cianfarini
08/04/2019, 6:41 PMDominaezzz
08/04/2019, 6:41 PMkevin.cianfarini
08/04/2019, 6:41 PMkevin.cianfarini
08/04/2019, 6:41 PMDominaezzz
08/04/2019, 6:42 PMPaginatedResponse
?kevin.cianfarini
08/04/2019, 6:42 PMDominaezzz
08/04/2019, 6:42 PMkevin.cianfarini
08/04/2019, 6:42 PM@Serializable
data class PaginatedResponse<out T>(
val next: Int?,
val count: Int,
val data: List<T>
)
Dominaezzz
08/04/2019, 6:43 PMkevin.cianfarini
08/04/2019, 6:43 PMDominaezzz
08/04/2019, 6:43 PMkevin.cianfarini
08/04/2019, 6:43 PMkevin.cianfarini
08/04/2019, 6:44 PMkevin.cianfarini
08/04/2019, 6:46 PMkevin.cianfarini
08/04/2019, 6:46 PM