Retrofit 2示例教程但GsonConverterFactory显示错误“无法解析符号”

dfuffjeb  于 2023-08-05  发布在  其他
关注(0)|答案(8)|浏览(182)

我试图遵循Retrofit的2 tutorial,,但在这部分代码中有一个GsonConverterFactory显示错误Cannot resolve symbol

public class ServiceGenerator {

    public static final String API_BASE_URL = "http://your.api-base.url";

    private static OkHttpClient httpClient = new OkHttpClient();
    private static Retrofit.Builder builder =
            new Retrofit.Builder()
                    .baseUrl(API_BASE_URL)
                    //THIS IS THE LINE WITH ERROR!!!!!!!!!!!!
                    .addConverterFactory(GsonConverterFactory.create());

    public static <S> S createService(Class<S> serviceClass) {
        Retrofit retrofit = builder.client(httpClient).build();
        return retrofit.create(serviceClass);
    }
}

字符串
之前我在我的gradle.build中添加了,我不确定是否应该添加GSON,因为他们说Retrofit 1.9有它,但没有提到Retrofit 2:

dependencies {  
    // Retrofit & OkHttp
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
}

gcmastyq

gcmastyq1#

编辑

改造2现在是稳定的。使用方法

compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'

字符串
build.gradle依赖项部分

  • 旧答案 *

在Retrofit 2.0中,你必须在你的build.gradle中声明你想要使用的转换工厂。新增

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


到你的gradle并再次同步

b1uwtaje

b1uwtaje2#

从该网站上的another article

**默认情况下,Retrofit 2不附带Gson。**以前,您无需担心任何集成转换器,可以开箱即用。此库更改会影响您的应用,您还需要将转换器作为同级包导入。我们将在这篇文章的后面触及转换器,并向您展示如何为您的应用程序配置Gson或任何其他响应转换器。

因此,将其添加到build.gradle

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

字符串

qfe3c7zg

qfe3c7zg3#

新版本现已推出

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

字符串

7hiiyaii

7hiiyaii4#

在我的例子中,这种行为的原因是build.gradle依赖项中的拼写错误。在beta4发布后,我更新了:

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

字符串

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


正确的依赖关系是

compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'


同样值得注意的是,beta4 -reflect不能与beta2 - gson一起工作!

2eafrhcq

2eafrhcq5#

更新后的具有新版本的改装库

compile 'com.squareup.retrofit2:retrofit:2.0.2'

字符串
必须包含以下项的依赖关系:

compile 'com.squareup.retrofit2:converter-gson:2.0.2'

ua4mk5z4

ua4mk5z46#

我用过

RestService restService=new Retrofit.Builder()
                    .baseUrl(Constants.Base_URl)
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                    .client(new OkHttpClient.Builder().readTimeout(60, TimeUnit.SECONDS).connectTimeout(60, TimeUnit.SECONDS).build())
                    .build().create(RestService.class);

字符串
和依赖关系:

compile 'com.squareup.retrofit2:retrofit:2.1.0'
        compile 'com.squareup.retrofit2:converter-gson:2.1.0'
        // RxJava adapter for retrofit
        compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
        // RxJava libraries
        compile 'io.reactivex:rxjava:1.0.10'
        compile 'io.reactivex:rxandroid:1.1.0'

use retrofit and gson of the same version code

nimxete2

nimxete27#

compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'

字符串
用这个

q0qdq0h2

q0qdq0h28#

由于默认情况下gson不可用于reflect,因此请同时使用reflect和converter-gson依赖项:

def retrofitVersion = "2.9.0"
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"

字符串
您可以找到最新版本的改装here和gson转换器here

相关问题