web-dev-qa-db-fra.com

RestAdapter (retrofit) ne se résout pas dans Android

J'essaie donc d'utiliser Retrofit pour mon projet. Comme le site l'indique, j'ai inclus compile 'com.squareup.retrofit:retrofit:2.0.0-beta1' dans build.gradle. Je lisais les tutoriels de ce link . Je veux faire quelque chose de semblable comme ça 

final RestAdapter restadapter = new RestAdapter.Builder().setEndpoint("http://services.hanselandpetal.com").build();

        api flowerapi = restadapter.create(api.class);

        flowerapi.getData(new Callback<List<Flower>>() {
            @Override
            public void success(List<Flower> flowers, Response response) {
                flowerList = flowers;
                adapter adapt = new adapter(getApplicationContext(),R.layout.item_file,flowerList);
                //ListView listView = (ListView) findViewById(R.id.list);
                setListAdapter(adapt);
            }

dans mon projet, c’est-à-dire faire des appels à une API. Mais restadapter n’obtient tout simplement pas resolved. En survolant dessus, il indique simplement symbol can't be resolved. Que se passe-t-il ici ? 

27
AbKDs

Vous avez deux options:

1) Utilisez stable Retrofit 1

Cela a la classe RestAdapter dont vous avez besoin.

compile 'com.squareup.retrofit:retrofit:1.9.0'

2) Migration vers la modernisation 2

La classe RestAdapter a été renommée en Retrofit et l'API a été complètement refaite. Lire la suite dans La présentation de Jake Wharton .

compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'

Au 30 juin 2016, la dernière version est la 2.1.0 obtenue par

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

Veuillez vérifier http://square.github.io/retrofit/ pour les mises à jour.

62
Eugen Pechanec

Il y a un changement dans l'API dans la version 2. Voici comment procéder dans cette version:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.github.com")
    .build();

GitHubService service = retrofit.create(GitHubService.class);

Veuillez vous référer ici pour plus d'informations: Page d'accueil de Retrofit 2

et ces diapositives: Présentation de Retrofit 2

29
Ashkan Sarlak

Si vous voulez exécuter votre code, vous devez utiliser une version plus ancienne de Retrofit.

compile 'com.squareup.retrofit:retrofit:1.9.0'

Mais vous utilisez 

compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'

Donc, vous devez changer votre code comme ça.

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.build();`

pour une documentation complète, veuillez vérifier Square RetroFit

8
kundan roy

Dans Retrofit 2.0, Converter n'est plus inclus dans le package. Vous devez connecter un convertisseur en vous-même ou Retrofit ne pourra accepter que le résultat String. En conséquence, Retrofit 2.0 ne dépend plus de Gson.

Si vous voulez accepter json result et le faire analyser dans DAO, vous devez appeler Gson Converter en tant que dépendance séparée.

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

Et branchez-le via addConverterFactory. Veuillez noter que RestAdapter est désormais renommé Retrofit.

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://api.nuuneoi.com/base/")
        .addConverterFactory(GsonConverterFactory.create())
        .build();

service = retrofit.create(APIService.class);

plus d'infos: https://inthecheesefactory.com/blog/retrofit-2.0/fr

0
BinqiangSun