Android上的Dagger 2,错过了错误消息

bee*_*ezn 12 android annotation-processing dagger-2 android-databinding kapt

我在我的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
...
Run Code Online (Sandbox Code Playgroud)

也许它与某些事实有关,我也在使用数据绑定!?

我正在使用Dagger 2.5,Gradle插件2.1.2和android-apt 1.8.

谢谢你的帮助!

Aus*_*ney 25

Java的

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

将此添加到您的应用中build.gradle:

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xmaxerrs" << "500"
    }
}
Run Code Online (Sandbox Code Playgroud)

科特林

kapt通过在build.gradle中添加以下内容,可以在使用时启用相同的javac选项.

kapt {
    javacOptions {
        option("-Xmaxerrs", 500)
    }
}
Run Code Online (Sandbox Code Playgroud)

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

  • 你是一个真正的救星,工作完美!非常感谢! (7认同)
  • 很棒的答案,你绝对是一个救生员. (2认同)