Android 数据绑定不存在:如何解决?
我正在开发一个带有数据绑定的Android应用程序,但我总是遇到下一个错误: 错误:PackageAndroid 数据绑定不存在:如何解决?,android,data-binding,Android,Data Binding,我正在开发一个带有数据绑定的Android应用程序,但我总是遇到下一个错误: 错误:Packagemy.Package.databinding不存在 这是我在项目层面上的build.gradle: buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.2' } } allproject
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
文件中启用了绑定
现在我的问题是,为什么会出现这个错误,我该如何解决它?基于类似的问题,原因可能与android数据绑定无关,而是由于错误地调用变量,如本例或其他类似的因素。如果这些链接都没有帮助,您应该提供更多详细信息。如果您的项目未编译,则通常会出现此问题。Android数据绑定应该在命名包中生成代码,但是如果项目没有首先编译,它就不能这样做
要解决这个问题,请将您的项目带到编译点。如果有必要,请为此关闭数据绑定。我在Android Studio 2.3中的一个包含4个模块的项目中遇到了这个问题,这是@F43nd1r所指出的,但我想记录一下在我的案例中我是如何解决这个问题的 四个模块中的一个在Gradle文件中有一个旧的Android支持库,而另外三个是最新的。这就是阻止项目正确编译并导致数据绑定错误的原因 困难的是,除非打开每个
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'
...
}
检查您的xml文件并注释您使用过的任何@{},除非您实际上已经准备好了数据。如果没有数据,您将一次又一次地遇到此错误
dataBinding {
enabled = true
}
已在app build.gradle文件中启用数据绑定。要查看错误,只需在应用程序的build.gradle中编辑以下代码行即可:
dataBinding {
enabled = false
}
这样,构建控制台中的最后一个错误就是实际错误。因为从第一个错误到倒数第二个错误,它们都与不生成数据绑定类有关,正是因为我们禁用了它
找到错误后,您将再次输入:
dataBinding {
enabled = true
}
对我来说,除了一个:重命名的XML绑定类 我以前试过的: 关闭/打开视图绑定 重命名文件夹 重新安装模块
重命名模块删除项目和子模块的构建文件夹、制作、重建等后,唯一对我有效的方法是: 创建新布局
我认为生成器中有一些东西弄乱了,并且刷新了它(这里完全是猜测)在项目级build.gradle文件中定义支持库版本将有助于保持模块的同步在我的例子中是编译的项目,但直到build.gradle中的模块'com.android.tools.build:gradle'更新后,问题才得以解决。在我的情况下,此标记没有任何意义。尽管我的项目已编译,但没有绑定,只是禁用->编译->重新启用并再次编译对我的项目有效