2017-05-12 4 views
-2

Meine Retrofit-Schnittstelle ist:Abfrageparameterwert wird nicht durch Retrofit-Schnittstelle übergeben, manchmal auf API 23

@GET("vocab/word/details") 
Call<EnglishWord> getWord(@Query("word_id") int id); 

Call:

Call<EnglishWord> call = getSingleWord.getWord(id); 
Log.d("WORDID",String.valueOf(id)); 

WordId in der nächsten Zeile protokolliert wird, aber der Anruf ist:

vocab/word/details?word_id=0 

gleiche geschieht Ähnliches gilt für andere Geberanforderung, word_id ist übergeben, während ich bestätigen kann, dass die ID an den Anruf (über Protokolle) übergeben wird.

Weird Teil ist dieses Problem ist zufällig, ich habe es nur in Marshmallow und nur ein paar Mal gesehen. Jede Hilfe wäre willkommen.

+0

Führen Sie den Anruf synchron oder asynchron aus? Sie müssen es ausführen oder fügen Sie eine Calkback –

+0

ja der Anruf ist asynchron ** call.enqueue (neuer Rückruf () {** Everyting funktioniert gut, außer ein paar Mal, wenn dies der Fall ist. Ich weiß nicht, was noch –

+0

Versuchen Sie, und reduzieren Sie das Problem zu einem [mcve]. Sind Sie sicher, dass Sie nicht den Wert von ID irgendwo elsr ändern? –

Antwort

0

Nach dem Debuggen viel und keine Ahnung von meinem Problem habe ich versucht Instant Run deaktivieren, und es funktioniert jetzt gut.

Das Deaktivieren des Sofort-Laufs löste das Problem (hoffentlich). Ich habe andere Beiträge gesehen (ab Januar 2016), bei denen der sofortige Lauf das Problem verursacht hat, und frage mich, warum es noch nicht behoben ist.

Verwandte Themen