我正在使用数据绑定的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
文件中启用了绑定。
现在我的问题是,为什么会出现这个错误,我该如何解决呢?
答案 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)
删除项目和子模块的构建文件夹,进行制作,重建等操作后,对我唯一有用的是:
创建新布局
我认为生成器中有些东西被弄乱并刷新了(在这里完全是猜测)