Ich war froh zu sehen, dass Googles Dagger-Gabel verfügbar gemacht wurde. (Zum Zeitpunkt des Schreibens merke ich, dass es noch nicht "freigegeben" ist.) Wir haben eine Android-App, die Dolch stark verwendet, obwohl wir nicht viele der fortgeschritteneren Funktionen verwenden.
Wir haben eine Geschäftsanforderung, unseren Code zu verschleiern, also habe ich versucht, auf Dagger 2.0-SNAPSHOT zu aktualisieren, in der Hoffnung, dass die Entfernung der Laufzeitreflektion von Dagger es möglich machen würde, eine Verschleierung durchzuführen Diese Reflexion wird immer noch in Bezug auf String-Konstanten verwendet, die zur Laufzeit zum Laden von Klassen verwendet werden.
Unten sind die relevanten Teile meiner proguard.conf.
%Vor%Wie Sie sehen können, habe ich einen Großteil der Verschleierung ausgeschaltet. Dadurch können einige Klassen korrekt injiziert werden, es schlägt jedoch immer noch fehl, wenn eine einzelne Klasse injiziert wird.
Hier ist die Ausnahme:
%Vor%Hat jemand schon mal mit der Dolchgabel von Google progardiert?
Spätester Dagger 2.0 SNAPSHOT (zum Schreiben dieses) spielt gut mit ProGuard. Ich habe no Regeln für Dagger 2 in meiner ProGuard Konfiguration hinzugefügt. Alles funktioniert einfach.
Übrigens: Ich benutze auch ButterKnife und greenDAO in meinem Projekt. Beide benötigen 3-4 ProGuard Regeln.
Es sieht so aus, als ob Sie immer noch Dagger v1 verwenden - im 2.0 Repo gibt es die ObjectGraph
Klasse nicht: Ссылка
Obwohl ich sehe, dass Ihre Frage zum Zeitpunkt des Schreibens fast zwei Monate alt ist - haben Sie es erneut mit 2.0-SNAPSHOT
versucht? Hast du noch ein Problem mit Proguard?
Tags und Links java android dependency-injection dagger proguard