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

时间:2015-10-02 07:10:33

标签: android gson retrofit

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

  

compile' 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

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

5 个答案:

答案 0 :(得分:134)

尝试使用相同的版本进行改造和转换器-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'

重要提示!

2.0.0-beta3版本开始,改装其包名称。现在你应该使用com.squareup.retrofit2。这是一个例子:

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

答案 1 :(得分:3)

使用最新的Beta 2.0.3版本,您需要添加:

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

确保将改装库版本与gson转换器版本相匹配。

答案 2 :(得分:2)

这是最新的:

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'

答案 3 :(得分:2)

build.gradle(app)中代替:

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

写:

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

答案 4 :(得分: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