web-dev-qa-db-fra.com

L’usine du convertisseur de conversion ne peut pas accéder à GsonConverterFactory

J'ai inclus ces dépendances à mon projet:

compile 'com.squareup.retrofit: amélioration: 2.0.0-beta2'
compiler 'com.squareup.retrofit: converter-gson: 2.0.0-beta1'

J'ai une classe où je vais accéder à mes api via le rattrapage:

 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);
    }

Et maintenant, cela me donne cette erreur de compilation:

Erreur: (24, 17) erreur: la méthode addConverterFactory de la classe Builder ne peut pas être appliquée à des types donnés. required: trouvé en usine: GsonConverterFactory raison: l'argument actuel GsonConverterFactory ne peut pas être converti en Factory par la conversion d'invocation de méthode

Comment puis-je résoudre ça? J'ai suivi la documentation. Qu'est-ce qui ne va pas?

52
AEMLoviji

Essayez d’utiliser la même version pour retrofit et converter-gson - 2.0.0-beta2. Vous utilisez beta2 pour rénovation et beta1 pour le convertisseur.

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

note importante!

Retrofit change le nom de son package depuis 2.0.0-beta3 version. Maintenant, vous devriez utiliser com.squareup.retrofit2. Voici un exemple:

implementation 'com.squareup.retrofit2:retrofit:2.2.0'
implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
139
Ilya Tretyakov

Avec la dernière version bêta 2.0.3, vous devez ajouter:

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

Assurez-vous de faire correspondre la version de la bibliothèque de conversion avec la version du convertisseur gson.

3
Suraj

C'est le dernier en date:

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'

Si vous utilisez la version bêta:

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'
2
joe

Dans build.gradle _ (app) au lieu de:

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

écrire:

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
2
CoolMind
  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

Si vous obtenez cette erreur, la raison en est une dépendance erronée.

Ajouter/modifier la dépendance dans le fichier de l’application build.gradle En tant que

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

assurez-vous que la version du convertisseur est 2.0.0-beta2 et non 2.0.0-beta1.

1
manoj