13

我在我的 Android 项目中使用 Dagger 2,但在调试它时遇到了麻烦。我知道编译失败是因为我的 dagger 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。

谢谢你的帮助!

4

1 回答 1

27

爪哇

javac默认情况下最多只会显示 100 个错误。您可能超过了这个限制,因为数据绑定报告了它生成的每个绑定类的错误。

将此添加到您的应用程序的build.gradle

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xmaxerrs" << "500"
    }
}

科特林

kapt您可以在使用时通过将以下内容添加到 build.gradle来启用相同的 javac 选项。

kapt {
    javacOptions {
        option("-Xmaxerrs", 500)
    }
}

这目前被忽略,但将在 Kotlin中修复v1.2.20

于 2016-07-28T17:03:55.653 回答