android - Android 上的 Dagger 2,缺少错误消息

标签 android dagger-2 android-databinding annotation-processing kapt

我在我的 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
...

也许这与我也在使用数据绑定(bind)这一事实有某种关系!?

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

感谢您的帮助!

最佳答案

Java

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

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

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

Kotlin

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

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

这目前被忽略,但将是 fixed在 Kotlin v1.2.20 中。

关于android - Android 上的 Dagger 2,缺少错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912127/

相关文章:

android - Dagger 2模块中为OkHttpClient提供HttpLoggingInterceptor实例的两个问题

android - 为什么 okhttp3.Interceptor 不起作用?

android - 如何在 DataBinding Android 的 BindingAdapter 方法中提供默认值

Android 数据绑定(bind)空合并运算符

android - 从 ApplicationTest 启动时,DataBindingUtil 不得返回 null

java - 动态设置Fragment时出错

java - Android java 随机图像

java - 当移动到另一个 fragment 并返回到它时,保存 fragment 内的 textView 值的正确方法是什么?

android - 如何访问 ViewModel 中的 SharedPreferences?

android - 如何强制软键盘不在edittext下隐藏textview/counter?