Hier ist meine Gradle.build-Datei
%Vor%Proguard-rules.pro Datei
%Vor%Ich habe eine der Java-Klassen als
%Vor%was ich in meinem Retrofit Restadapter als
verwende %Vor%Wenn minifiyEnabled jetzt falsch ist, funktioniert der gesamte Code einwandfrei, aber ich habe minifyEnabled auf true gesetzt, der Netzwerkaufruf findet nicht statt. Meine App ruft diesen Endpunkt sofort nach dem Start auf, aber die Netzwerkprotokolle zeigen nicht die Netzwerkanforderung an. Kann mir jemand sagen, was hier falsch ist?
Proguard spielt nicht gut mit vielen der Bibliotheken, die ich in meinem Projekt verwendet habe.
Für gson habe ich die Proguard-Regeln hinzugefügt, die das gson-Team unter angegeben hat Ссылка
Sie müssen
ändern %Vor%bis
%Vor%Für die Nachrüstung müssen Sie
hinzufügen %Vor%Von hier Ссылка
Für die joda Bibliothek habe ich
hinzugefügt %Vor%Für Otto musst du
hinzufügen %Vor%Von hier Ссылка
Ich habe auch
hinzugefügt %Vor%Vor der Verwendung dieser Konfigurationsänderungen hat Proguard meine App von 3,4 mb auf 2 mb getrimmt. Nachdem ich diese Änderungen verwendet habe, verkleinere ich sie auf 3,2 MB, also werde ich einfach mit minifyEnabled false gehen.
Proguard verschleiert wahrscheinlich einige Ihrer Klassen in Ihrem Projekt, das Retrofit / Gson verwendet. Dies führt dazu, dass Ihre Anfrage niemals erfolgreich ist, weil das Parsen fehlschlägt. Dies liegt an den Parametern, die z.B. String status
kann mit Proguard in String a
umgewandelt werden. Dies stimmt nicht mit der Antwort überein, daher schlägt es fehl.
Kurz gesagt - stellen Sie sicher, dass all Ihre Klassen, die Retrofit / Gson zum Erstellen und Analysieren der Antwort verwendet, von der Proguard-Verschleierung ausgeschlossen sind .
Tags und Links android android-studio retrofit android-gradle proguard