webentwicklung-frage-antwort-db.com.de

RestAdapter (Retrofit) wird in Android nicht aufgelöst

Also versuche ich Retrofit für mein Projekt zu verwenden. Wie die Site sagt, habe ich compile 'com.squareup.retrofit:retrofit:2.0.0-beta1' in build.gradle eingefügt. Ich habe die Tutorials von diesem link gelesen. Ich möchte etwas Ähnliches machen 

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

in meinem Projekt also einige Aufrufe einer API. Restadapter erhält jedoch nicht resolved. Beim Schweben darauf heißt es einfach symbol can't be resolved. Was passiert hier ? 

27
AbKDs

Sie haben zwei Möglichkeiten:

1) Verwenden Sie ein stabiles Retrofit 1

Dies hat die RestAdapter-Klasse, die Sie benötigen.

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

2) Migrieren Sie zu Retrofit 2

Die RestAdapter-Klasse wurde in Retrofit umbenannt und die API wurde komplett neu erstellt. Lesen Sie mehr in Jake Whartons Präsentation .

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

Per 30. Juni 2016 ist die neueste Version 2.1.0 von erhalten

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

Bitte überprüfen Sie http://square.github.io/retrofit/ für Updates.

62
Eugen Pechanec

In Version 2 gibt es eine Änderung in der API. So machen Sie es in dieser Version:

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

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

Weitere Informationen finden Sie hier: Retrofit 2-Startseite

und diese Folien: Retrofit 2-Präsentation

29
Ashkan Sarlak

Wenn Sie Ihren Code ausführen möchten, müssen Sie eine ältere Version von Retrofit verwenden.

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

Aber du verwendest 

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

Sie müssen also Ihren Code so ändern.

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

die vollständige Dokumentation finden Sie unter RetroFit-Quadrat

8
kundan roy

In Retrofit 2.0 ist der Konverter nicht mehr im Paket enthalten. Sie müssen einen Konverter selbst einstecken, da Retrofit nur das String-Ergebnis akzeptieren kann. Daher ist Retrofit 2.0 nicht mehr von Gson abhängig.

Wenn Sie das Json-Ergebnis akzeptieren und es in DAO analysieren lassen möchten, müssen Sie Gson Converter als separate Abhängigkeit aufrufen.

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

Und schließen Sie es über addConverterFactory an. Bitte beachten Sie, dass RestAdapter jetzt auch in Retrofit umbenannt wird.

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

service = retrofit.create(APIService.class);

weitere Informationen: https://inthecheesefactory.com/blog/retrofit-2.0/de

0
BinqiangSun