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

Модифицированный преобразователь factory не может получить доступ к GsonConverterFactory

Я включил эти зависимости в свой проект:

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

У меня есть класс, где я собираюсь получить доступ к моему api через дооснащение:

 public static  <S> S createService(Class<S> serviceClass, String baseUrl) {


        Retrofit builder = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();    

            RestAdapter adapter = builder.build();*/

        return  builder.create(serviceClass);
    }

И теперь, это дает мне эту ошибку времени компиляции:

Ошибка: (24, 17) error: метод addConverterFactory в классе Builder не могут применяться к заданным типам; требуется: Factory найдено: Причина GsonConverterFactory: фактический аргумент GsonConverterFactory не может быть преобразован в Factory с помощью преобразования вызова метода

Как я могу это решить? Я следил за документацией. Что не так?

4b9b3361

Ответ 1

Попробуйте использовать ту же версию для дооснащения и конвертер-gson - 2.0.0-beta2. Вы используете beta2 для модификации и beta1 для преобразователя.

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

Важное примечание!

Дооснащение изменит название своего пакета с версии 2.0.0-beta3. Теперь вы должны использовать com.squareup.retrofit2. Вот пример:

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

Ответ 2

С последней версией Beta 2.0.3 вам нужно добавить:

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'

Обязательно сопоставьте версию модифицированной библиотеки с версией gson converter.

Ответ 3

Это последнее:

compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'

Если вы используете бета-версию:

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

Ответ 4

  error: method addConverterFactory in class Builder cannot be applied to given types;
    required: Factory
    found: GsonConverterFactory
    reason: actual argument GsonConverterFactory cannot be converted to Factory by method invocation conversion

Если вы получаете эту ошибку, причина заключается в неправильной зависимости.

Добавить/изменить зависимость в приложении build.gradle как файл

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

убедитесь, что версия преобразователя 2.0.0-beta2 не 2.0.0-beta1.

Ответ 5

В build.gradle (app) вместо:

implementation 'com.google.code.gson:gson:2.8.2'

записи:

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'