我正在项目中使用数据绑定,但在xml绑定类中使用
和
时未生成。
例如,我有activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data> </data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
</layout>
Android Studio:2.1.3
类路径:com.Android.tools.build:Gradle:2.1.3
minSdkVersion 16
targetSdkVersion 24
buildToolsVersion 24.0.0
我没有得到任何令人满意的答复。这里是我的数据绑定知识的总结。
要获得更准确的错误和建议,我强烈建议将Android Studio和Gradle插件版本更新到最新。因为AS3.2版本之后我面临的问题不多。
查看最新的Android Studio和最新的Gradle插件。
这些点一一检查。任何这些都可以让你的工作完成。第三点是非常重要的,所以不要错过。
您应该在build.gradle
中启用数据绑定。如果没有,则添加该值并同步。
android {
...
buildFeatures {
dataBinding true
}
}
现在,如果希望生成数据绑定类,则应该使用数据绑定(
XML Layout
。像这样的东西。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout>
</layout>
您的数据绑定类应在创建绑定布局后生成。
如果您的布局名称为snake格式
activity_main.xml
,那么数据绑定类将以骆驼格式生成,如activitymainbinding
。
有时当您键入
activitymai...
时,它不会显示建议,在这种情况下是手动导入。
import <yourpackage>databinding.ActivityMainBinding;
如果构建失败,将不会生成绑定类和布局中的新变量。因此,首先通过Ctrl+F9(Build>Make project)制作项目。
- 如果构建失败,则查看什么是错误,通常我们在布局字段中有错误。错误日志将指出出现问题的错误行号。
- 绑定失败可能会导致一些愚蠢的错误,如语法错误或缺少导入。在那种情况下,您将得到充满绑定类错误的logcat。但您应该阅读完整的logcat以查找适当的问题。
我总是这样做,因为这比
重新生成
/生成
项目花费的时间少得多。
null
注意,我更喜欢从最近开始关闭和打开,因为这比重新构建/重新启动IDE花费的时间少得多。
如果仍然没有生成您的类。(有时当我们粘贴布局文件,然后它发生)。然后从
Build>Rebuild
(而不是Build或Make Project)重新生成项目。它将生成数据绑定类。(重建对我有魔力。)
在更新到Android Studio3.2后,我感觉到数据绑定自动生成中有很多错误被修复。所以你也应该有最新的AS。
<data>
<variable
name="item"
type="com.package.Model"/>
</data>
如果您更改了布局中某些
Build>Clean project
)
最后,如果您的绑定类仍然没有生成,那么我们就拥有了最强大的武器。-重启Android Studio
- 首先,尝试重新启动,这总是在重新启动后生成绑定布局的变量。
- 如果它不工作,则使缓存无效并重新启动。
这就是我为解决数据绑定错误所做的全部工作。如果你有任何进一步的问题,你可以在这里发表评论。
错误CS0234:类型或命名空间名称com.sushi.hangover”中不存在。是否缺少程序集引用? 我有一个Android绑定项目,它有从多个接口继承的类,但这些接口没有生成,因此依赖于它们的所有公共类都无法绑定。 如您所见,该接口的没有设置为,因此不会生成C#代码,但是begin生成了依赖于该接口的公共类: 绑定在将接口名称从转换为时,可以识别接口。 是否有任何方法可以强制创建这些接口,而
Android Studio:3.1.0、3.1.1 分级:4.4 生成工具:3.1.0 我正在使用数据绑定库。当我向project添加布局文件或向布局文件中添加任何视图时,Android Studio无法为布局生成绑定类,直到重新构建项目。 布局文件: 我查看了Android Studio的日志,当布局文件发生变化时,总会有错误消息。
数据绑定 JXML 中的动态数据来自于该 Page 的 data字段。 简单绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于以下: 页面内容 <view> hello {{ name }} </view> Page({ data: { name: 'cortana' } }) 组件属性(需要在双引号之内) <view id="{{id}}"> </
attr绑定是用来为html元素绑定属性值的,这种绑定非常有用,例如我们需要想一个元素添加title属性,或者为img标签添加src属性。 示例代码: //.W片段 <a bind-attr="{ href: url, title: details }"> Report </a> //js片段 this.url=justep.Bind.observable("year-end.html"),
submit绑定只能用在form元素中,当form提交的时候被触发,并且默认阻止form的提交。因此我们通常在submit的处理函数中以ajax的方式提交form表单。 示例代码: //.W片段 <form bind-submit="doSomething"> ... form contents go here ... <button type="submit">Submit</butt
with绑定用来创建一个绑定上下文,在子元素内的所有绑定都在这个上下文中进行。 示例代码: //.W片段 <h1 bind-text="city"> </h1> <p bind-with="coords"> Latitude: <span bind-text="latitude"> </span>, Longitude: <span bind-text="longitude"> </span