java.lang.IllegalArgumentException:无法为类创建@Body转换器

时间:2019-03-03 20:55:30

标签: android retrofit2 moshi

最近我从GSONConverterFactory切换到MoshiConverterFactory。除了一个电话,其他所有东西都工作正常。像这里的其他API调用一样,我也在使用@Body注释,但出现此错误  java.lang.IllegalArgumentException:无法为类创建@Body转换器

我的请求类:

data class DemoRequest(
val emailId: String? = null,
val demoData: List<DemoDomain?>? = null,
val userName: String? = null

这里要提到的另一件事是,使用GSONConverterFactory可以正常工作,但是当我切换到MoshiConverterFactory时会抛出错误。

retrofitVersion ='2.3.0'

服务界面:

@POST("call/api")
fun sendToServer(@Body request: DemoRequest):retrofit2.Call<RemoteResponse>

val retrofit = Retrofit.Builder()
            .baseUrl(BASE_URL)
            .client(okHttpClient)
            .addConverterFactory(MoshiConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build()

更新------------- 我正在请求中发送Date对象,因此我需要使用自定义适配器,并且现在可以正常使用

1 个答案:

答案 0 :(得分:0)

在构建改造时,您还记得更改为MoshiConverterFactory吗?

Retrofit.Builder().baseUrl(...).addConverterFactory(MoshiConverterFactory.create()).build()

此外,Retrofit的最新版本是2.5.0,因此您可以尝试升级并确保您的转换器也是同一版本。