2016-07-11 13 views
1

Ich verwende Retrofit 2.0, um Anfragen an meine REST-API zu senden. Ich habe die folgende Methode, die gut funktioniert:NoSuchMethodError Beim Hinzufügen von drittem @Field in Retrofit 2

@FormUrlEncoded 
@POST("/mobile_register/") 
Call<MobileAuthUserJSON> createUser(@Field("username") String username, @Field("password") String password); 

Allerdings, wenn ich ein drittes Feld wie folgt hinzu:

@FormUrlEncoded 
@POST("/mobile_register/") 
Call<MobileAuthUserJSON> createUser(@Field("username") String username, @Field("password") String password, 
            @Field("phone_number") String phone_num); 

ich mit einem gegrüßt bin:

java.lang.NoSuchMethodError: No interface method createUser(Ljava/lang/String;Ljava/lang/String;)Lretrofit2/Call; in class Lcom/jiaohuan/jiaohuan/jsonData/UserAPI; or its super classes (declaration of 'com.jiaohuan.jiaohuan.jsonData.UserAPI' appears in /data/data/com.jiaohuan.jiaohuan/files/instant-run/dex/slice-slice_5-classes.dex)

Ich kann nicht für das Leben von mir herauszufinden, warum das passiert, kann es kein Fehler mit dem Server sein, weil:

1) Der App-Absturz es bevor es sogar die Anfrage macht

2) Ich habe bereits den Server eingerichtet, um das Empfangen des Feldes "phone_number" zu behandeln.

+0

Ich kenne dieses Framework nicht, aber es scheint, dass Sie (implizit oder explizit) 'createUser' aufrufen, indem Sie irgendwo in Ihrem Projekt zwei String-Parameter übergeben:' /data/data/com.jiaohuan.jiaohuan/files/instant- run/dex/slice-slice_5-classes.dex' – Dici

+0

Ich werde das untersuchen. Diese .dex-Datei wurde nicht von mir erstellt, das ist ein Teil der IDE-generierten Dateien. Ich glaube, – ethanzh

+0

Wie sieht es aus? – Dici

Antwort

1

Als ich diesen Fehler erfuhr, bestand die Lösung darin, das Projekt sauber wiederherzustellen.