Ich versuche Proguard für mein Android-Projekt einzurichten. Mein Anwendungsprojekt enthält sehr wenig Code, verweist jedoch auf ein Bibliotheksprojekt, in dem der Großteil des Codes und alle anderen externen Jars enthalten sind. Davon abgesehen bin ich mir nicht sicher, wie ich proguard einrichten soll, um dies zu berücksichtigen. Im Moment ist meine Proguard-Konfigurationsdatei nur das Android-Beispiel von the ProGuard site. Ich habe herumgesucht, aber habe nicht viel oder irgendeine Dokumentation über Progard mit Bibliotheksprojekten gefunden, nur Gläser. Ich bin neu in Progress, also wäre jeder Schritt in die richtige Richtung großartig. Vielen Dank.Einrichten von ProGuard mit Android-Bibliotheksprojekten
Antwort
bearbeiten
Wie @BornToCode weist darauf hin, eine andere Antwort (ursprünglich here geschrieben) besser erklärt, wie Bibliotheksprojekte von Proguard behandelt werden. Außerdem hat diese referenzierte Frage mehr Interesse und mehr Gesamtreputation als in meiner ursprünglichen Antwort. Das Zitat:
Bibliotheksprojekte von selbst laufen nicht ProGuard, so dass sie nicht jede Konfiguration verwenden.
Anwendungsprojekte verschleiern die gesamte Codebasis, einschließlich aller referenzierten Bibliotheken, so dass sie die richtige Konfiguration für den Anwendungscode und für den Bibliothekscode benötigen.
Alte Antwort(nicht falsch, nur wahrscheinlich nicht der beste Ansatz)
Die Bibliotheksprojekte sind eher ein bequemer Weg, um ein Projekt zu seinem Glas in Eclipse zu verknüpfen. Wenn Sie das Projekt erstellen, ist die JAR-Datei die einzige Komponente des Bibliotheksprojekts, die für Ihren Compiler sichtbar ist.
Wenn Sie wollen, dass Glas verschleiern, diesen Beitrag ansehen:
How to obfuscate an Android library (.jar file) using Proguard in Eclipse
Es macht Sinn für mich zu proguard Einstellungen für eine Bibliothek (wie das Bibliotheksdatei sollte nicht verschleiert) angeben in der Bibliothek Projekt. Ich habe festgestellt, dass ich auch Proguard-Konfigurationen aus meinen Bibliotheksmodulen in meiner Anwendung hinzufügen muss. Dazu habe ich folgendes zum defaultConfig
Abschnitt in meiner Bibliothek build.gradle
apply plugin: 'com.android.library'
android {
defaultConfig {
consumerProguardFiles 'proguard-rules.pro'
}
}
und konfiguriert dann die proguard-rules.pro Datei in meinem Bibliotheksmodul die Namen wichtiger serialisierten Klassen zu halten.
Siehe auch consumerProguardFiles
gradle reference
- 1. Wie proguard für Amazon iap einrichten?
- 2. Verwenden von ProGuard mit Android
- 3. Proguard - auch proguard Dateien von Modulen
- 4. Einrichten von Umgebungen mit SaltStack
- 5. Einrichten von elasticSearch mit Postgresql
- 6. Einrichten von JBoss5 mit MyEclipse
- 7. Einrichten von OrmLite mit StructureMap
- 8. Einrichten von PHPStorm mit TortoiseSVN
- 9. ausschließen Pakete von proguard
- 10. Bedeutung von {*; } In ProGuard
- 11. Retrofit 1.9 mit Proguard
- 12. Android Proguard mit Multidex
- 13. Proguard mit Autovalue
- 14. Proguard mit Roboguice
- 15. Proguard mit Crashlytics
- 16. Ausführen von ProGuard mit AQuery-Bibliothek
- 17. Fehler beim Erstellen von Annotation mit ProGuard
- 18. Integrieren von Espresso mit Proguard und Gradle
- 19. Verwenden von proguard mit espresso/androidTest
- 20. Verwenden von GSON mit Proguard aktiviert
- 21. Android - Erstellen von signierten APK mit Proguard
- 22. Verschlüsseln private Felder mit ProGuard
- 23. sbt-proguard mit play 2.2.3
- 24. Obwuscating Clojure Uberjars mit ProGuard
- 25. Proguard mit google-play-services
- 26. ProGuard arbeitet nicht mit okhttp
- 27. besten Weg Proguard mit dwr
- 28. Abnormes Verhalten während proguard mit
- 29. ProGuard mit Android: java.lang.NoSuchMethodError: android.util.Xml.asAttributeSet
- 30. ProGuard + Maven mit Java 7
Hallo, es scheint, diese Antwort ist anders mit [diese] (http://stackoverflow.com/questions/10982344/is-proguard-cfg-needed-for-library-projects#10992604). Könntest du erklären? – BornToCode
@BornToCode Sie haben absolut Recht. Die verknüpfte Antwort ist offensichtlich viel seriöser als meine Antwort. Ich habe einen Link dazu und ein Zitat in meiner Antwort hier hinzugefügt. – Phil