数据绑定不存在:如何解决?

时间:2016-11-05 16:39:36

标签: android data-binding

我正在使用数据绑定的Android应用程序,但我总是下一个错误:

  

错误:my.package.databinding不存在。

这是项目级别的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
    }
}
allprojects {
    repositories {
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

我还在模块级别的build.gradle文件中启用了绑定。

现在我的问题是,为什么会出现这个错误,我该如何解决呢?

8 个答案:

答案 0 :(得分:22)

如果您的项目无法编译,通常会出现此问题。 Android数据绑定应该在命名包中生成代码,但如果项目首先没有编译,则无法执行此操作。

要解决此问题,请将项目置于可编译的位置。如有必要,请关闭数据绑定。

答案 1 :(得分:3)

我在Android Studio 2.3中的4个模块的项目中遇到了这个问题,这是@ F43nd1r指出的内容,但是想要记录我在我的案例中解决这个问题的方法。

4个模块中的一个在Gradle文件中有一个较旧的Android支持库,而其他3个是最新的。这是阻止项目正确编译并导致数据绑定错误的原因。

困难的部分是您不知道这一点,除非您打开每个build.gradle文件并查看是否显示错误。它在编译时没有显示错误。

有效地,我将此区域更新为较新的版本号,以匹配其他3个模块build.gradle文件。

dependencies {
    ...
    compile 'com.android.support:appcompat-v7:25.2.0'
    compile 'com.android.support:support-v4:25.2.0'
    compile 'com.android.support:recyclerview-v7:25.2.0'
    compile 'com.android.support:design:25.2.0'
    ...
}

答案 2 :(得分:3)

检查您的xml文件并对您使用过的任何@ {}发表评论,除非您确实掌握了数据。如果没有数据,您会一次又一次地碰到这个错误。

答案 3 :(得分:1)

dataBinding {
    enabled = true
}

在app build.gradle文件中启用了数据绑定。它的工作

答案 4 :(得分:1)

要查看错误,只需在应用程序的build.gradle中编辑以下代码行:

dataBinding { enabled = false }

通过这种方式,构建控制台中的最后一个错误是实际错误。因为从第一个错误到倒数第二个错误,它们都与数据绑定类的未生成有关,正是因为我们已将其禁用。

一旦发现错误,您将再次输入:

dataBinding {

enabled = true }

答案 5 :(得分:0)

根据SO上的类似问题,原因可能与android数据绑定无关,而是由于错误调用此issue中的变量或此other issue中的其他一些因素。如果这些链接都没有帮助,您应该提供更多详细信息。

答案 6 :(得分:0)

对我来说,除了以下任何一项都无效:重命名XML绑定类 我之前尝试过: 视图绑定 重命名文件夹 重新安装模块 重命名模块

答案 7 :(得分:0)

删除项目和子模块的构建文件夹,进行制作,重建等操作后,对我唯一有用的是:

创建新布局

我认为生成器中有些东西被弄乱并刷新了(在这里完全是猜测)