我沉迷了2天才想出来。因此,我回过头来发布这里的调查结果,以便节省时间:
这是由bug in Jack that prevents classpaths from working properly造成的。它与杰克运行“进程内”(在与gradle守护进程相同的JVM中)有关。将android.defaultConfig.jackOptions.jackInProcess
设置为false确实会超出“先决条件”错误,但会导致其他问题(2个占用系统资源的JVM)& bugs以其他(worse)方式破坏构建。
就目前而言,最好的解决办法似乎是:
- 等待2.3版本Android的gradle这个插件,它已经为这个事儿了。
- 同时将Dagger降级到v2.2。
这是最高版本,似乎避免与杰克的番石榴冲突。
编辑:更新2017年1月14日:
我遇到了杰克几个其他的问题,并得到这么累呢,我切换到retrolambda,踢自己的不这样做前面!现在,杰克似乎只会解决更多的问题。只需在行中加上一个加号,然后删除一行减号,然后在等待杰克让它一起行动的同时返回Dagger 2.8!
+plugins {
+ id "me.tatarka.retrolambda" version "3.4.0"
+}
apply plugin: 'com.android.application'
+apply plugin: 'me.tatarka.retrolambda'
- jackOptions {
- enabled true
- }
为了更快的retrolambda版本,添加org.gradle.jvmargs=-Xmx4608M
您gradle.properties
文件,以便能够德兴进程中发生。现在,我在匕首2.8和我的干净版本只有12秒,良好的RIDDANCE,杰克!
从gradle 2.2更新到2.3对我来说确实有窍门。谢谢 – Gonzalo