Повторная установка 2 примера, но ошибка дисплея GsonConverterFactory "Не удается разрешить символ"
Я пытаюсь выполнить 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'
}
Ответы
Ответ 1
ИЗМЕНИТЬ
модернизация 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 конвертировать factory, который хотите использовать. Добавить
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
к вашему gradle и синхронизировать его снова
Ответ 2
Из другой статьи на этом сайте
Retrofit 2 не поставляется с Gson по умолчанию. Раньше вам не нужно беспокоиться о каком-либо интегрированном конвертере, и вы могли бы использовать Gson из коробки. Это изменение библиотеки влияет на ваше приложение, и вам необходимо импортировать конвертер в качестве пакета для совместного использования. Хорошо коснитесь конвертера позже в этом сообщении и покажите, как настроить Gson или любой другой конвертер ответов для вашего приложения.
Таким образом, добавьте это в свой build.gradle
dependencies {
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}
Ответ 3
Причиной такого поведения в моем случае было опечатка в зависимости от 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 - модификация не будет работать с бета2 - gson!
Ответ 4
Как обновленная обновленная библиотека с новой версией
С
compile 'com.squareup.retrofit2:retrofit:2.0.2'
Вам необходимо включить зависимость:
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
Ответ 5
Доступна новая версия
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
Ответ 6
Я использовал
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'
используйте модификацию и gson того же кода версии
Ответ 7
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'
используйте этот