2016-07-23 6 views
1

Ich versuche, meine App zu lösen und ProGuard verursacht alle möglichen Fehler mit meinem Server-Code, so ging ich in die gradle Konsole und sehen:Woher weiß ich, vor welchen Klassen Proguard mich warnt?

Note: there were 2 references to unknown classes. 
    You should check your configuration for typos. 
    (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass) 
Note: there were 26 unkept descriptor classes in kept class members. 
    You should consider explicitly keeping the mentioned classes 
    (using '-keep'). 
    (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass) 
Note: there were 22 unresolved dynamic references to classes or interfaces. 
    You should check if you need to specify additional program jars. 
    (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass) 
Note: there were 15 accesses to class members by means of introspection. 
    You should consider explicitly keeping the mentioned class members 
    (using '-keep' or '-keepclassmembers'). 
    (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember) 

Das ist alles schön und gut ist, aber wie zum Teufel tun Ich weiß, über welche spezifischen Referenzen ProGuard spricht? Sicher erwarten sie nicht, dass ich diese Referenzen unabhängig finde/erinnere?

+0

https://medium.com/chanse-games-developers/proguard-part-1-google-play-services-75c03de45305 –

Antwort

3

In Ihrem modulspezifischen Build-Ordner wird die Datei usage.txt erstellt.

build/outputs/mapping/release/usage.txt 

Diese Datei enthält, was sind alle Methoden entfernt und was sind die Klassen bewirkt. Stellen Sie sicher, dass alle Klassen Ihres eigenen Projekts, die von Bedeutung sind, nicht entfernt werden.

+0

Würde Ihre Proguard-Regel verhindern, dass der App-Code verschleiert wird? – Blaasd

+0

Ja, es hält meinen Code so wie er ist. Könnte nicht die beste Praxis sein. aber du kannst immer noch usage.txt überprüfen und sehen, welcher Code von dir von proguard entfernt wurde. – Ramesh

+0

Ich schaue durch und sehe, es ist nur eine riesige Liste von Methoden und Klassen. Gibt es eine Möglichkeit für mich zu sehen, was ProGuard genau bemerkt hat? Es ist sehr seltsam, dass es 26 unbeaufsichtigte Deskriptorklassen benennt, aber nicht auflistet, was sie sind. – Blaasd

0

Es ist es, in der Konsole Konsole, genau darüber, wo ich diesen Auszug aus! D'oh

+0

Die Konsole ist jedoch möglicherweise ziemlich voll und es ist schwierig, die benötigten Informationen ohne weitere Filterung zu finden. – Nerethar

1

benötigen Sie den ausführlichen Schalter in die ProGuard Konfigurationsdatei hinzufügen:

-verbose 

während die ProGuard Manual diese Hinweise erklärt - und wie sie zu beheben.