我在Android项目中使用Dagger 2,但我在调试时遇到问题。我知道编译失败是因为我的匕首2设置中的错误(以前有过)但是几乎不可能跟踪它,因为我没有得到正确的错误消息告诉我问题出在哪里。我得到的只是显示注释处理失败的消息。沿着:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Error:(14, 28) error: cannot find symbol class BR
Error:(17, 40) error: package com.some.package.databinding does not exist
Error:(17, 51) error: cannot find symbol class DaggerSomeComponent
...
也许它与某种事实有关,我也在使用数据绑定!?
我正在使用Dagger 2.5,Gradle插件2.1.2和android-apt 1.8。
感谢您的帮助!
答案 0 :(得分:24)
javac
最多只能显示100个错误。您可能已经超过此限制,因为数据绑定报告了它生成的每个绑定类的错误。
将此添加到您的应用build.gradle
:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "500"
}
}
通过在build.gradle中添加以下内容,可以在使用kapt
时启用相同的javac选项。
kapt {
javacOptions {
option("-Xmaxerrs", 500)
}
}
目前已被忽略,但在Kotlin v1.2.20
中将fixed。