我正在尝试遵循Retrofit的2教程,但是在这部分代码中有一个
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'
}
编辑
改造 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 并再次同步
来自该网站上的另一篇文章
因此,将其添加到您的Retrofit 2 默认情况下不附带 Gson。 以前,您无需担心任何集成转换器,并且可以开箱即用地使用 Gson。此库更改会影响您的应用程序,您还需要将转换器作为同级包导入。我们稍后将在本文中介绍转换器,并向您展示如何为您的应用程序配置 Gson 或任何其他响应转换器。
build.gradle
dependencies {
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
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 - 改造不适用于 beta2 - gson!
与
compile 'com.squareup.retrofit2:retrofit:2.0.2'
您必须包含以下依赖项:
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
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
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'
用这个
def retrofitVersion = "2.9.0"
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
您可以在
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
请将此依赖项添加到您的 build.gradle(app) 中。