改造转换器工厂无法访问GsonConverterFactory

问题描述 投票:0回答:6

我已将这些依赖项包含到我的项目中:

编译'com.squareup.retrofit:retrofit:2.0.0-beta2'
编译 'com.squareup.retrofit:converter-gson:2.0.0-beta1'

我有一个类,我将通过改造访问我的 api:

 public static  <S> S createService(Class<S> serviceClass, String baseUrl) {


        Retrofit builder = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();    

            RestAdapter adapter = builder.build();*/

        return  builder.create(serviceClass);
    }

现在,它给了我这个编译时错误:

错误:(24, 17) 错误:类 Builder 中的方法 addConverterFactory 不能应用于给定类型;需要: 工厂发现: GsonConverterFactory原因:实参GsonConverterFactory 无法通过方法调用转换转为Factory

我该如何解决这个问题?我按照文档进行操作。怎么了?

android gson retrofit
6个回答
183
投票

尝试使用相同版本进行改造和转换器-gson -

2.0.0-beta2
。您使用
beta2
进行改装,使用
beta1
进行转换器。

implementation 'com.squareup.retrofit:retrofit:2.0.0-beta2'
implementation 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

重要提示!

Retrofit 自

2.0.0-beta3
版本起更改了其包名称。现在你应该使用
com.squareup.retrofit2
。这是例子:

implementation 'com.squareup.retrofit2:retrofit:2.2.0'
implementation 'com.squareup.retrofit2:converter-gson:2.2.0'

11
投票

build.gradle
(应用程序)中,而不是:

implementation 'com.google.code.gson:gson:2.8.2'

写:

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

4
投票

在最新的 Beta 2.0.3 版本中,您需要添加:

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'

确保改造库版本与gson转换器版本匹配。


3
投票

这是最新的:

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'

如果您使用测试版:

compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'

1
投票
  error: method addConverterFactory in class Builder cannot be applied to given types;
    required: Factory
    found: GsonConverterFactory
    reason: actual argument GsonConverterFactory cannot be converted to Factory by method invocation conversion

如果您收到此错误,原因是包含错误的依赖项。

添加/更改应用程序中的依赖关系

build.gradle
文件为

compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'  
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

确保转换器版本是

2.0.0-beta2
而不是
2.0.0-beta1


0
投票

retrofit2 和retrofit2:converter 的最新版本

实现(“com.squareup.retrofit2:转换器-gson:2.11.0”) 实现(“com.squareup.retrofit2:retrofit:2.11.0”)

转换器工厂用于将 JSON 数据(来自服务器/API)转换为 java(模型)对象(POJO),以在 Android 项目中使用。

© www.soinside.com 2019 - 2024. All rights reserved.