Android Studio 1.1.0 Einstellung minifyEnabled true verursacht Probleme mit der App

8

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?

    
Samidh T 25.04.2015, 09:25
quelle

2 Antworten

12

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.

    
Samidh T 25.04.2015, 11:02
quelle
4

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 .

    
Jamie 25.04.2015 09:47
quelle