Android数据绑定错误:执行失败java.lang.RuntimeException:
我试着从这里模拟一些例子: 除了图像url绑定之外,其他一切都正常工作。我收到错误: 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败 java.lang.RuntimeException:发现数据绑定错误。 ****/数据绑定错误****msg:找不到参数类型为java.lang.String的属性“app.imageUrl”的setter。文件:D:\Projects\app\src\main\res\layout\view\u simple\u item.xml loc:43:32-43:47****\data binding error**** 我的布局:Android数据绑定错误:执行失败java.lang.RuntimeException:,java,android,data-binding,Java,Android,Data Binding,我试着从这里模拟一些例子: 除了图像url绑定之外,其他一切都正常工作。我收到错误: 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败 java.lang.RuntimeException:发现数据绑定错误。 ****/数据绑定错误****msg:找不到参数类型为java.lang.String的属性“app.imageUrl”的setter。文件:D:\Projects\app\src\main\res\layout\view\u simple\u item.
...
<data>
<variable
name="item"
type="com.example.Item" />
</data>
...
<ImageView
android:id="@+id/iv_item"
app.imageUrl="@{item.imageUrl}"
... />
...
我发现了我的问题。而不是:
app.imageUrl="@{item.imageUrl}"
必须是:
app:imageUrl="@{item.imageUrl}"
将BindingAdapter注释的参数设置为“app:imageUrl”。所以你必须有这个:
@BindingAdapter("app:imageUrl")
与此相反:
@BindingAdapter("bind:imageUrl")
还有@Alexander Myznikov所说的-将
app.imageUrl
更改为app:imageUrl
仅尝试重命名@BindingAdapter内部的引用
@BindingAdapter({"bind:image_url"})
public static void loadImage(ImageView imageView, String url) {
Picasso.with(imageView.getContext()).load(url).into(imageView);
}
在您的布局中:
...
<data>
<variable
name="item"
type="com.example.Item" />
</data>
...
<ImageView
android:id="@+id/iv_item"
app:image_url="@{item.imageUrl}"
... />
...
。。。
...
...
有什么区别?应用程序冒号
而不是应用程序点
别担心。我看了10分钟,直到我对视。不会为我编译说它找不到CustomBindingAdapter。imageUrl我知道我迟到了,但只要去掉“bind:”并使其成为:@BindingAdapter(“imageUrl”),我就是这样添加自定义的并工作的
...
<data>
<variable
name="item"
type="com.example.Item" />
</data>
...
<ImageView
android:id="@+id/iv_item"
app:image_url="@{item.imageUrl}"
... />
...