Подтвердить что ты не робот

Повторная установка 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'
}
4b9b3361

Ответ 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'

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