Tôi bị chìm như 2 ngày để tìm ra điều này. Vì vậy, tôi quay lại để đăng những phát hiện ở đây trong trường hợp nó tiết kiệm thời gian ai đó:
Điều này gây ra bởi một bug in Jack that prevents classpaths from working properly. Nó phải làm với Jack chạy "trong quá trình" (trong cùng một JVM như daemon gradle). Việc đặt android.defaultConfig.jackOptions.jackInProcess
thành sai sẽ vượt quá lỗi "Điều kiện tiên quyết" nhưng nó gây ra các sự cố khác (2 JVM mà tài nguyên hệ thống hog) & bugs phá vỡ cách xây dựng theo cách khác (worse).
Cho đến nay, giải pháp tốt nhất có vẻ là:
- Chờ cho việc phát hành 2.3 của plugin gradle Android, mà đã có sửa chữa cho việc này.
- Hạ cấp Dagger xuống v2.2, trong thời gian chờ đợi.
Đây là phiên bản cao nhất có vẻ như tránh xung đột ổi với Jack.
EDIT: Cập nhật 2017/01/14:
tôi chạy vào một số vấn đề khác với Jack và đã quá mệt mỏi của nó mà tôi chuyển sang retrolambda và đá bản thân mình cho không làm trước đây! Ngay bây giờ, Jack dường như chỉ gây ra nhiều vấn đề hơn là giải quyết. Chỉ cần thêm các dòng với dấu cộng và xóa các dòng có dấu trừ và bạn có thể quay trở lại Dagger 2.8 trong khi đợi Jack để nó hoạt động cùng nhau!
+plugins {
+ id "me.tatarka.retrolambda" version "3.4.0"
+}
apply plugin: 'com.android.application'
+apply plugin: 'me.tatarka.retrolambda'
- jackOptions {
- enabled true
- }
Đối retrolambda thậm chí nhanh hơn xây dựng, thêm org.gradle.jvmargs=-Xmx4608M
đến file gradle.properties
của bạn để Dexing có thể xảy ra trong quá trình. Bây giờ, tôi đang sử dụng Dagger 2.8 và các bản dựng sạch chỉ có 12 giây, RIDDANCE TỐT, JACK!
Cập nhật từ cấp độ 2.2 đến 2.3 đã thực hiện thủ thuật cho tôi. Cảm ơn – Gonzalo