Proguard - nicht aufgelösten Referenzen zu Programm Klasse Mitglieder
Ich versuche zu verbergen mein android Anwendung, jedoch bin ich immer die folgende Fehlermeldung:
[2012-04-15 19:55:51 - TmtAndroid] Proguard returned with error code 1. See console
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'org.apache.tools.ant.Project getProject()' in class proguard.ant.ClassPathElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'boolean isReference()' in class proguard.ant.ClassPathElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.ClassPathElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'java.lang.String[] list()' in class proguard.ant.ClassPathElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'void setLocation(java.io.File)' in class proguard.ant.ClassPathElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassSpecificationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.ClassSpecificationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassSpecificationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.ClassSpecificationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ConfigurationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.ConfigurationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ConfigurationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.ConfigurationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ConfigurationTask: can't find referenced method 'org.apache.tools.ant.Project getProject()' in class proguard.ant.ConfigurationTask
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.FilterElement: can't find referenced method 'boolean isReference()' in class proguard.ant.FilterElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.FilterElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.FilterElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.KeepSpecificationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.KeepSpecificationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.KeepSpecificationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.KeepSpecificationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.MemberSpecificationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.MemberSpecificationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.MemberSpecificationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.MemberSpecificationElement
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ProGuardTask: can't find referenced method 'org.apache.tools.ant.Project getProject()' in class proguard.ant.ProGuardTask
[2012-04-15 19:55:51 - TmtAndroid] You should check if you need to specify additional program jars.
[2012-04-15 19:55:51 - TmtAndroid] Warning: there were 17 unresolved references to program class members.
[2012-04-15 19:55:51 - TmtAndroid] Your input classes appear to be inconsistent.
[2012-04-15 19:55:51 - TmtAndroid] You may need to recompile them and try again.
[2012-04-15 19:55:51 - TmtAndroid] Alternatively, you may have to specify the option
[2012-04-15 19:55:51 - TmtAndroid] '-dontskipnonpubliclibraryclassmembers'.
[2012-04-15 19:55:51 - TmtAndroid] java.io.IOException: Please correct the above warnings first.
[2012-04-15 19:55:51 - TmtAndroid] at proguard.Initializer.execute(Initializer.java:321)
[2012-04-15 19:55:51 - TmtAndroid] at proguard.ProGuard.initialize(ProGuard.java:211)
[2012-04-15 19:55:51 - TmtAndroid] at proguard.ProGuard.execute(ProGuard.java:86)
[2012-04-15 19:55:51 - TmtAndroid] at proguard.ProGuard.main(ProGuard.java:492)
Wenn ich
-dontwarn proguard.ant.**
zur proguard.cfg, apk exportiert, aber nach der installation auf dem Handy, es stürzt ab, es ist also nicht die Lösung in diesem Fall...
Was soll ich tun, um diese Warnungen? Es ist meine erste Interaktion mit proguard...
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Allgemeine Vorgehensweise beim arbeiten mit Proguard ist zu beginnen mit einer sehr kleinen
.pro
Datei mit dem alles eingeschaltet ist, und starten Sie dann ausschalten verschiedene Verschleierung/Optimierung/Schrumpfung Optionen, bis die resultierende jar korrekt läuft.Also ich würde vorschlagen, läuft durch die Proguard Beispiele Seite und versuchen, die verschiedenen
-keep
unddontXXX
Optionen, die Sie vorschlagen.Auch, hat Ihre Anwendung (oder das Android-framework) verwenden native Methoden, Serialisierung, Reflexion, callback-Methoden, Anmerkungen, etc...? Die Beispiele, die Dokumentation enthält die Einstellungen, die Sie brauchen, um passieren zu Proguard, um sicherzustellen, Proguard bytecode-manipulation nicht brechen diese Funktionen.
Zum Beispiel, ich bin nicht sehr vertraut mit der Android-Plattform, aber ich glaube, es nutzt eine Art von XML-framework, die erzählt, wie Sie sich zu laden/verwenden Sie die Java-Klassen, die Sie definieren. Wenn das der Fall ist, und Sie haben Proguard verschleiern der Klasse oder package-Namen, die die XML-framework nicht in der Lage sein zu finden die Kurse mehr.