2017-05-22 2 views
0

ich den Absturz in android Nachrüstung bekommen für Release-BuildAndroid Retrofit 1.9.0 Releasebuild IllegalArgument Exception Ausgabe

Last parameter must be of type Callback<X> or Callback<? super X>. 
at retrofit.RestMethodInfo.methodError(Unknown Source) 
at retrofit.RestMethodInfo.parseResponseType(Unknown Source) 
at retrofit.RestMethodInfo.<init>(Unknown Source) 
at retrofit.RestAdapter.getMethodInfo(Unknown Source) 
at retrofit.RestAdapter$RestHandler.invoke(Unknown Source) 

Ich versuchte Proguard Regeln aus dieser Referenz Proguard issue while using GSON und https://github.com/square/retrofit/issues/372 aber es funktioniert nicht

+0

Funktioniert "-keeptributes Signature" für Sie? –

Antwort

0

Ok, es sieht so aus, als ob Sie 2 Optionen haben:

1) Verschieben Sie alle Deserialisierungs- und Serialisierungsmodelle in ein bestimmtes Paket, und fügen Sie in proguard-rules.pro das vollständige Paket hinzu e Name:

e.g. 

-keep class com.mycompany.myproject.mydata.model.** { *; } 

und dann wird es funktionieren, weil diese Dateien nicht proguarded werden.

2) können Sie verwenden, um die @SerializedName und die @Export Anmerkungen in den Daten Mitglieder Ihrer Modelle wie folgt aus:

public class KeyValue { 
    @SerializedName("Key") 
    @Expose 
    private String key; 
    @SerializedName("Value") 
    @Expose 
    private String value; 

    public String getKey() { 
     return key; 
    } 

    public String getValue() { 
     return value; 
    } 
} 

und dann können Sie auch die Modelle ProGuard.

Ich hoffe es hilft !!!

+0

Ich habe versucht, es funktioniert nicht – user12378334

+0

Was hast du probiert? Nur indem ich das sage, definiert es nichts – matrix