Dolch 2, Gradle Plugins und Jack - Anleitung erforderlich

8

Ich benutze Dagger 2 (erstmaliger Benutzer der DI-Bibliothek) mit Android Studio (AS 2.1.2 - SDK 24), und mein erster Gedanke ist offensichtlich: "Welche Abhängigkeiten brauche ich, um sie zu benutzen?"

Nachdem ich Beispiele angeschaut habe, kann ich sehen, dass Sie in der obersten Ebene build.gradle file ein Annotation-Prozessor-Plugin benötigen:

%Vor%

Nun wenden die Abhängigkeiten in Module level build.gradle das apt-Plugin für Module an, so dass ich am Ende folgendes sehe:

%Vor%


PROBLEM

Ich habe für einige Zeit die Jack Tool Chain und Java 8 in meinen Projekten verwendet und festgestellt, dass die obige Konfiguration nicht mit Jack kompatibel ist.

Nachdem ich recherchiert habe, was ich brauchte, um Jack and Dagger 2 zu kooperieren, habe ich folgendes geändert:

gradle-wrapper.properties:

Geändert zu:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

build.gradle (oberste Ebene)

Geändert zu:

%Vor%

build.gradle (Modulebene)

Geändert zu:

%Vor%

Mit diesen Änderungen konnte ich die Jack Tool Chain verwenden und ein kleines Projekt erstellen. Aber ohne Code zu ändern begann ich Probleme mit der Erstellung meiner Komponenten - in einer einfachen Codezeile: testComponent = DaggerTestComponent.builder().build(); Das Wort DaggerTestComponent wurde rot (offensichtlich funktionierte die Bibliothek Dagger 2 nicht so, wie sie sollte). Ich habe es geschafft, den Fehler durch einen guten alten ungültigen Cache zu beheben, zu säubern und neu aufzubauen. Allerdings wurde ich jedes Mal mit zufälligen Fehlern geplagt, wenn ich versuche, das kleine Testprojekt zu bauen - ich habe es ein paar Mal geschafft, die App zu starten (und es funktioniert wie erwartet), aber offensichtlich ist es ziemlich temperamentvoll.


FRAGE

Also die Frage, und ich entschuldige mich dafür, dass ich so lange gebraucht habe, aber ich dachte, dass all das oben Erwähnte relevant ist,

Gibt es ein "stabileres" Setup als das, was ich gerade benutze? Hat jemand anderes diese Probleme festgestellt?

Natürlich muss ich die Jack-Toolkette und Java 8 nicht verwenden, aber ich möchte lieber keine Kompromisse machen, wenn ich es nicht muss!

    
Mark Keen 10.08.2016, 23:55
quelle

0 Antworten