Пример учебника по модернизации 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'
}

person StackOverflower    schedule 23.10.2015    source источник
comment
Вы не можете использовать GsonConverterFactory в Retrofit 2, так как он применим только к Retrofit 1.   -  person IgorGanapolsky    schedule 19.01.2016
comment
Я следую этому руководству: http://wiki.workassis.com/android-retrofit-2-1-http-client/   -  person Bikesh M    schedule 30.09.2016
comment
См. stackoverflow.com/a/41015925/3470479.   -  person Prakhar1001    schedule 07.12.2016


Ответы (7)


ИЗМЕНИТЬ

Модификация 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'

в свой град и снова синхронизируйте его

person Blackbelt    schedule 23.10.2015
comment
привет, спасибо, я не могу проголосовать за тебя, так как кажется, что у меня недостаточно представителей, но твой ответ также помог - person StackOverflower; 23.10.2015

Из другой статьи на этом сайте.

Retrofit 2 не поставляется с Gson по умолчанию. Раньше вам не нужно было беспокоиться о каком-либо встроенном конвертере, и вы могли использовать Gson без дополнительной настройки. Это изменение библиотеки влияет на ваше приложение, и вам также необходимо импортировать конвертер как родственный пакет. Мы коснемся конвертера позже в этом посте и покажем вам, как настроить Gson или любой другой конвертер ответов для вашего приложения.

Таким образом, добавьте это в свой build.gradle

dependencies {  
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}
person Andrew Brooke    schedule 23.10.2015

Причиной такого поведения в моем случае была опечатка в зависимости build.gradle. После выпуска beta4 я обновил:

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

to

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

и правильная зависимость была

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


Также стоит отметить, что beta4 - модификация не будет работать с beta2 - gson!

person Nikita Barishok    schedule 01.03.2016

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

С

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

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

compile 'com.squareup.retrofit2:converter-gson:2.0.2'
person Pratik Butani    schedule 25.04.2016

Доступна новая версия

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
person Denys Milano    schedule 23.06.2016

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'

использовать это

person Keshav Gera    schedule 18.07.2017

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

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
person Nilesh    schedule 24.09.2016