所以Retrofit 2.0.0最近发布了,并没有真正有关如何使用它的任何更新示例,但我试图将其实现为基本的API调用。我得到了
java.lang.IllegalArgumentException: Unable to create converter for class`
由引起的
Caused by: java.lang.IllegalArgumentException: Could not locate converter for class orbyt.app.dataclass. Tried:
* retrofit.OkHttpBodyConverterFactory
尝试拨打api时。
答案 0 :(得分:123)
我遇到了同样的问题。我通过添加:
来修复它Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
到我的build.gradle
然后在创建我的Retrofit实例时指定转换器。
{{1}}
答案 1 :(得分:14)
在Retrofit 2.0中,转换器不包含在包中 当您使用Retrofit 2.0时,请确保遵循新的URL模式
基本网址:始终以/
结尾@Url:不要以/
开头Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
有关2.0的详细信息,请点击此链接Retrofit 2.0: The biggest update
还要更新build.gradle。
答案 2 :(得分:7)
相应地更改改装版本
对于我来说,依赖已经存在了
compile 'com.squareup.retrofit2:retrofit:2.0.2'
对于gson 2.0.2,我改变了
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
然后添加
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
答案 3 :(得分:6)
对于Retrofit V2,添加以下存储库 -
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
现在使用以下代码 -
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
希望它会有所帮助:)
答案 4 :(得分:3)
在最新的Retrofit 2.0中,您应该导入最新版本:
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'
小心拨打baseUrl()
,在v2.0,它应该是" /"的结束,并且在该方法中,你不会用" /&开始#34;
@POST("classes/info")
Call<ContactBean> insertInfo(@Body ContactBean bean);
您可以看到Retrofit以获取更多信息! 希望有所帮助!
答案 5 :(得分:0)
在my case(带有协同程序的科特琳)中,我收到了例外:
无法创建用于retrofit2.Call的转换器
用于方法Queries.exportPdf。
原因: java.lang.IllegalArgumentException:无法找到ResponseBody 用于Retrofit2.Call的转换器
请求中存在问题:
onTableChange(pagination, filter, sorter){
const { params, columns } = this.state;
/** You can do any custom thing you want here. Below i update sort type in my state and pass it to my redux function */
if(sorter.order != null)
params.ordering = (sorter.order === 'descend' ? "-" : "")+ sorter.columnKey.toString();
this.setState({params});
this.props.listUsers(this.state.params);
}
从定义中删除了@FormUrlEncoded
@Streaming
@POST("export-pdf/")
suspend fun exportPdf(
@Field("token") token: String
): Call<ResponseBody>
,异常消失了。