Wir müssen den Inhalt speichern und abrufen, den Nutzer mit unserer App online generieren. Um dies zu erreichen, haben wir uns entschieden, die integrierte Google Cloud Endpoints-Vorlage von Android Studio zu verwenden, um schnell eine API zu erstellen (offizielles Anwendungsbeispiel here).Proguard-Konfiguration bei Verwendung der Google Cloud Endpoints-Vorlage von Android Studio
Es funktioniert gut im Debug, aber im Freigabemodus, mit Proguard aktiviert, schlägt es fehl. Schlimmer noch, ich habe keine Dokumentation oder Beispiele zur Verwendung von Proguard mit den Endpoint-Vorlagen von Android Studio gefunden.
Nach einer Stunde oder so um von Stossen und zu versuchen, es Arbeit zu bilden, die proguard-rules.pro sieht nun wie folgt aus:
-keep class com.google.api.** { public *; }
-dontwarn com.google.api.**
-keep class com.google.common.** { public *; }
-dontwarn com.google.common.**
# Not allowed to post company and app names, but this line is correct in the real file
-keep class com.companyname.appname.application.backend.** { *; }
Mit dieser Konfiguration, ich bin eine Klasse Besetzung bekommen Ausnahme in meinem ArrayAdapter
:
java.lang.ClassCastException: com.google.api.client.util.ArrayMap cannot be cast to com.companyname.appname.application.backend.messageApi.model.Message
Es scheint die Umwandlung von zurückgegebenen Daten nicht irgendwo und durchgeführt wird, statt ein List
von Message
Objekten, erhalte ich ein List
von com.google.api.client.util.ArrayMap
Objekte (sie enthalten übrigens gültige Daten).
Ich konnte überprüfen, ob die App im Freigabemodus ausgeführt wird und die Konvertierung manuell durchführen, aber es ist ein hacky Weg und ich würde es lieber richtig machen. Kann mir bitte jemand sagen, was mir in der Proguard-Konfigurationsdatei fehlt?
Der erste Abschnitt von dem, was Sie gepostet haben, ist in der Tat die richtige Lösung. – Manvis
Großartig, danke für die Rückmeldung. – myanimal
Erster Abschnitt ist mein Leben gerettet !! Riesiges Danke! – KimKha