题 无法在Android Retrofit2 converter-simplexml库中为我的类创建转换器


我使用Retrofit2 converter-simplexml库,当我使用converter-gson时代码运行成功,但是当我添加simplexmlConverter时,我得到了一个异常:

java.lang.IllegalArgumentException: Unable to create converter for java.util.List<com.rengwuxian.rxjavasamples.model.ZhuangbiImage>
Caused by: java.lang.IllegalArgumentException: Could not locate ResponseBody converter for java.util.List<com.rengwuxian.rxjavasamples.model.ZhuangbiImage>.

这是我试图执行复古http请求的地方:

private void search(String key) {
    subscription = getZhuangbiApi()
            .search(key)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(observer);
}

public static ZhuangbiApi getZhuangbiApi() {
    if (zhuangbiApi == null) {
        Retrofit retrofit = new Retrofit.Builder()
                .client(okHttpClient)
                .baseUrl(baseUrl)
                .addConverterFactory(simpleXmlConverterFactory)
                .addCallAdapterFactory(rxJavaCallAdapterFactory)
                .build();
        zhuangbiApi = retrofit.create(ZhuangbiApi.class);

    }
    return zhuangbiApi;
}

我的界面变成了我的API

public interface ZhuangbiApi {

@GET("merchant/list")
Observable<List<ZhuangbiImage>> search(@Query("app_code") String appCode);
}

和壮比图像课

@Root(name = "item")
public class ZhuangbiImage {

@Element(name = "title")
public String title;

@Element(name = "merchant_id")
public String merchantId;
}

12
2018-06-16 10:40


起源


你是什​​么意思,说“使用gson时代码运行正常”?使用简单的xml转换器时,使用gson转换器时是否获得成功响应并且不成功? - R. Zagórski
重新检查您的依赖项。你有没有添加这行`dependencies {// Retrofit XML converter(Simple)compile'c​​om.squareup.retrofit2:converter-simplexml:2.1.0'}' - Rushi M Thakker
你能分享你的gradle文件吗?您从Web服务获得的示例响应 - Mithun Sarker Shuvro
您是否使用调用<List <ZhuangbiImage >>而不是Observable <List <ZhuangbiImage >>进行测试 - MrZ
在你的Api .addConverterFactory(SimpleXmlConverterFactory.create())中试试这个 - MrZ


答案:


您必须在gradle-file中检查您的依赖项。还要检查改装和转换器的版本是否相同。


0
2018-02-15 04:03