Zatapiałem się jak 2 dni, aby to zrozumieć. Więc krążę z powrotem, aby opublikować wyniki tutaj, na wypadek gdyby ktoś zaoszczędził czas:
Jest to spowodowane przez bug in Jack that prevents classpaths from working properly. Ma to związek z uruchomieniem przez Jacka "procesu" (w tej samej maszynie JVM, co demon gradle). Ustawienie wartości false na "android.defaultConfig.jackOptions.jackInProcess
" wykracza poza błąd "warunków wstępnych", ale powoduje inne problemy (2 maszyny JVM, które hogują zasoby systemowe). & bugs które łamią kompilację w inny sposób (worse).
Na razie najlepszym rozwiązaniem wydaje się być:
- Poczekaj na wersji 2.3 Android Gradle wtyczki, która ma już na to poprawkę.
- Zmniejsz Sztylet do wersji 2.2, w międzyczasie.
Jest to najwyższa wersja, która wydaje się unikać konfliktu Guava z Jackiem.
EDIT: Aktualizacja 14.01.2017:
wpadłem na kilka innych problemów z Jackiem i dostał tak zmęczony, że przeszedłem do retrolambda i kopnął się do nie robi to wcześniej! W tej chwili Jack wydaje się po prostu powodować więcej problemów niż rozwiązuje. Po prostu dodaj linie z plusem i usuń linie za pomocą minus i możesz wrócić do Dagger 2.8, czekając, aż Jack zrobi to razem!
+plugins {
+ id "me.tatarka.retrolambda" version "3.4.0"
+}
apply plugin: 'com.android.application'
+apply plugin: 'me.tatarka.retrolambda'
- jackOptions {
- enabled true
- }
Dla jeszcze szybszego retrolambda buduje, dodać org.gradle.jvmargs=-Xmx4608M
do pliku gradle.properties
tak że Dexing może się zdarzyć w trakcie procesu. Teraz jestem w Dagger 2.8 i moje czyste kompilacje są tylko 12 sekund, GOOD RIDDANCE, JACK!
Uaktualnienie z wersji 2.2 do 2.3 było dla mnie problemem. Dzięki – Gonzalo