我正在尝试使用Android的数据绑定。
我不能再建立我的项目了。我收到了这个错误:
“错误:(13,46)错误:包ch.company.project.databinding没有 存在“
这是我的gradle
:
和
这里是gradle输出:
答案 0 :(得分:33)
感谢Yigit!
问题不是直接链接到Android Databinding。 项目中存在错误(某些变量未正确设置)
我建议使用gradle与“ - debug和--stacktrace”获取更多信息,这对我们有很大帮助。
答案 1 :(得分:12)
错误不是DataBinding包,它是语法错误或逻辑错误。例如,您具有属性" lastName"在您的POJO中,但在布局中android:text="@{user.lastname}"
。
检查你的"布局"并做重建项目。
答案 2 :(得分:11)
之前,我的软件包名称是“ com.xyz.abc.Models” 将软件包名称更改为所有小写字母“模型”->“模型”
解决了这个问题。
答案 3 :(得分:3)
我对接受的答案感到不满意,因为它告诉您没有提示的堆栈跟踪。
以下是导致此问题的一些可能原因。检查您是否未执行以下任何操作。
基本上Android DataBinding仍然不是成熟。它会失败而没有适当的错误。
因此,如果您遇到类似package ch.company.project.databinding does not exist"
的问题。
imports
和{{1 }})。通常在这种情况下,我不会得到适当的错误。variables
方法是否具有正确的参数。例如,@BindingAdapter
绑定适配器将接受imageUrl
或ImageView
作为第一个参数。在工作完成后,您应该始终重建项目 。在一个布局中。
如果您无法通过上述步骤找到错误,请在
的编译选项中尝试View
--debug and --stacktrace
答案 4 :(得分:2)
我的项目遇到了类似的问题
你可以尝试:
答案 5 :(得分:2)
在我的特定情况下,我使用的是Dagger 2.这个包错误出现在许多类中,与原始错误没有任何关系:依赖注入错误。
快乐提醒:在您的堆栈跟踪上滚动更多内容以了解真正的问题。
答案 6 :(得分:2)
我被同样的错误困扰了几个小时。在尝试了stackoverflow的几种解决方案之后,我用稳定的gradle依赖关系更新了我的项目。
它仍然没有解决,但是在我的另一个项目中,具有相同的gradle依赖项DataBinding
可以正常工作。
因此,我使用资源管理器转到项目文件夹,并已删除 2件东西。
- 构建文件夹
- .idea / libraries中的所有文件
此后,我同步了该项目,它继续正常运行。
答案 7 :(得分:1)
我收到了错误:
错误:(9,46)错误:包com.company.www.bar.databinding没有 存在。
我只是删除" ="标志 。它对我有用
由此:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@={()->activity.onButtonClick()}"/>
到:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{()->activity.onButtonClick()}"/>
答案 8 :(得分:1)
确保您在布局中引用的模型字段具有public
访问修饰符
答案 9 :(得分:1)
更改
{ databinding = true}
到
buildFeatures{
dataBinding = true
}
答案 10 :(得分:0)
尝试关注Refactor
-> migrate to androidx
并在build.grade(:app)
implementation 'androidx.appcompat:appcompat:1.0.0'
或
implementation 'androidx.databinding:databinding-runtime:1.0.0'
答案 11 :(得分:0)
就我而言,我遵循 android 文档:
buildFeatures {
viewBinding true
}
使用“=”代替空格
buildFeatures {
viewBinding = true
}
答案 12 :(得分:0)
包名称必须开始小写字母。否则,绑定库无法理解它是类还是包。此外,您不需要用小写字母来完成所有操作。
示例,错误用法:
package com.programmerbrain.activity.ContactInfo; //Problem is ContactInfo, 'C'.
示例,真正的用法:
package com.programmerbrain.activity.contactInfo; //Solution is contactInfo, 'c'.
答案 13 :(得分:0)
将程序包名称更改为小写。 代替ViewModels 使用视图模型。它对我有用。
答案 14 :(得分:0)
如果您尝试了此步骤
android.databinding.enableV2=false
android.enableExperimentalFeatureDatabinding=true
并检查所有xml文件看起来不错。 那么您应该使用此解决方案,在项目级别build.gradle中添加以下代码
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "1000"
}
}
}
这将给您确切的错误,如果您有实际的错误 说明:上面的代码会增加编译错误的大小
答案 15 :(得分:0)
答案 16 :(得分:0)
确保您的软件包名称以小写字母开头。 经过两个小时的努力,我的问题解决了
答案 17 :(得分:0)
要摆脱此错误,只需将完整的布局设计包含在activity_main.xml
文件中的普通布局标记内。
在浪费了很多时间寻找解决方案后,这对我有用。试一试。