【问题标题】:Android databinding swallows errors from other compilersAndroid 数据绑定会吞下其他编译器的错误
【发布时间】:2018-06-08 07:43:12
【问题描述】:

如果在编译过程中出现任何错误,则不会生成数据绑定类 - 因此,我会收到大量这样的错误:

  symbol:   class DataBindingComponent
  location: class TrainingActivityCompletedSetBinding
  e: S:\ProjectLocation\TrainingActivityCompletedSetBinding.java:60: error: cannot find symbol
  @Nullable DataBindingComponent component)

问题是编译错误根本与数据绑定无关,因此我不知道究竟是什么导致它 - 我必须手动挖掘文件以找到问题。

在上面的示例中,我只是从需要它的构造函数中省略了@Inject。在这种情况下,很高兴看到 Dagger 的错误消息,这样我就可以立即找到它,而不必深入所有项目类来手动找到它。

任何帮助都将非常感激!


Android Studio 和 Databinding 目前都在 3.1.3 版本,这个错误至少从 3.0 开始就存在。

使用 Kotlin V1.2.41,并使用 kapt 生成代码。

尝试增加编译器显示的最大错误数,遗憾的是没有区别。

临时解决方法是在 gradle.properties 中简单地禁用数据绑定 V2:android.databinding.enableV2=true。不过,仍然可以找到更好的解决方案。

【问题讨论】:

  • @Luksprog 我试过了,但没有运气;忘记在帖子中包含它 - 抱歉!
  • 我的主!!!!我为你高兴!!!!

标签: android android-databinding


【解决方案1】:

无法写评论,所以我会在这里写。 可能你想说添加这样的一行:android.databinding.enableV2=false,这样它就可以正常工作了。

【讨论】:

  • 这对我来说不适用于 android studio 3.4.1、com.android.tools.build:gradle:3.2.1 和 kotlin 版本 1.2.71。可能是 Dagger 的解决方法,但不是其他人。
  • 伟大的作品。这解决了这个问题。我的环境工具构建 gradle 3.2.1@Aqluse
【解决方案2】:

我看到您说您尝试增加编译器将显示的最大错误数,但以防万一它有助于其他在这里找到方法的人:

您可以关注此论坛帖子,而不是禁用 V2 数据绑定,该帖子演示了如何扩展显示的错误数量。这解决了我的问题,而无需每次都禁用 V2。

这解决了我的问题即使我看到的错误数量不是一个明显的整数,所以我不确定计数是如何工作的。

https://github.com/google/dagger/issues/306

【讨论】:

    【解决方案3】:

    我已经引用并继续来自@Aqluse here 的答案,也来自另一个线程here

    这是解决此数据绑定问题的替代方法。

    1. kapt "androidx.databinding:databinding-compiler:${your gradle version}"
    2. android.databinding.enableV2=false
    3. check your missing or wrong import XML **check your version control**
    4. upgrade your android studio to the latest stable
    

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 2011-01-05
      • 2017-07-30
      • 2020-06-15
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多