GoogleAnalyticsV2 und Proguard

8

Ich verwende die Google Analytics V2-Bibliothek in meinem Projekt.

Wenn ich ein signiertes Anwendungspaket aus Eclipse exportiere, erhalte ich folgende Ausgabe in der Konsole:

%Vor%

Hier ist meine proguard.cfg

%Vor%

Wenn ich -dontwarn com.google.analytics.tracking.android.FutureApis zu config hinzufüge, bekomme ich

%Vor%

Irgendwelche Hinweise?

    
Igor Filippov 31.10.2012, 10:27
quelle

3 Antworten

18

Ich habe mich auch mit diesem Problem konfrontiert. Da es in der GA-Dokumentation noch keine offizielle Lösung gibt, habe ich folgende Regeln aufgestellt:

%Vor%

Dies überspringt auch die Verschleierung, aber das sollte für eine externe Bibliothek kein Problem sein.

    
Vajk Hermecz 06.11.2012, 12:03
quelle
5

Die erste Warnung zeigt an, dass FutureApis die Datei # setReadable (boolean, boolean) aufruft, die nicht auf der Zielplattform existiert, die Sie für Ihren Build angegeben haben (anscheinend android-8 oder älter). ProGuard kann es ignorieren, aber es wird ein Problem sein, wenn dieser Code jemals auf diesen älteren Plattformen ausgeführt wird. Die Dokumentation von Google Analytics gibt an, dass Android-7 ausreichend ist, daher ist es vermutlich in Ordnung, dies zu ignorieren.

Der unerwartete Fehler weist darauf hin, dass die V4-Unterstützungsklasse AccessibilityDelegateCompatIcs $ 1 die Android-Klasse View $ AccessibilityDelegate erweitert, die auf der Zielplattform nicht existiert, die Sie für Ihren Build angegeben haben (android-13 oder älter). In diesem Fall benötigt ProGuard diese Klasse, um den Code ordnungsgemäß zu verarbeiten. Mit einer unvollständigen Klassenhierarchie wäre die Ausgabe ein Chaos.

Sie können beide Probleme lösen, indem Sie beim Kompilieren Ihrer Release-Version ein neueres Build-Ziel in project.properties angeben. Die fehlenden Klassen und Methoden werden in der entsprechenden android.jar enthalten sein, so dass ProGuard alle benötigten Informationen zur Verfügung hat. Da es sich bei diesen Klassen lediglich um Klassen der Laufzeitbibliothek handelt, die für die Kompilierung / Optimierung / Verschleierung verwendet werden, haben sie keine Auswirkungen auf die Ausgabe.

    
Eric Lafortune 07.11.2012 17:33
quelle
0

Ich stieß auf das gleiche Problem - ich war in der Lage, Fehler zu unterdrücken, wenn Ank für die Freigabe erstellt - aber wenn die Anwendung es fällt, an den Orten, wo die Klassen, die obfuscator fluchen. Im Moment habe ich dieses Problem nicht gelöst. Was ist interessant, dass im Debame-Modus beim Ausführen der Anwendung über Eclipse - und es funktioniert perfekt.

    
Siruk Viktor 10.05.2013 09:31
quelle