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 ?
Sie haben zwei Möglichkeiten:
Dies hat die RestAdapter
-Klasse, die Sie benötigen.
compile 'com.squareup.retrofit:retrofit:1.9.0'
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.
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
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
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