Retrofit 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'
}
672   7  

7 ответов:

EDIT

Модификация 2 теперь стабильна. Использовать

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

В вашем build.gradle разделе зависимостей

старый ответ

С Retrofit 2.0 вы должны объявить в своей сборке.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'
}

Причиной такого поведения в моем случае была опечатка в зависимости 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-retrofit не будет работать с beta2-gson !

Как обновленная библиотека модернизации с новой версией

С

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

Вы должны включить зависимость от:

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

Теперь доступна новая версия

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

Я использовал

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'

Использовать retrofit и gson одного и того же кода версии

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'

Используйте это

Comments

    Ничего не найдено.