Android数据绑定错误:执行失败java.lang.RuntimeException:

我试着从这里做一些类似的例子: http : //www.mutualmobile.com/posts/using-data-binding-api-in-recyclerview除了图像url绑定之外,一切正常。 我收到错误:错误:任务’:app:compileDebugJavaWithJavac’的执行失败。

java.lang.RuntimeException:发现数据绑定错误。 **** /数据绑定错误****消息:找不到参数类型为java.lang.String的属性’app.imageUrl’的setter。 file:D:\ Projects \ app \ src \ main \ res \ layout \ view_simple_item.xml loc:43:32 – 43:47 **** \ data binding error ****

我的布局:

...    ...  ... 

我的适配器:

 package com.example.adapters; import android.databinding.BindingAdapter; import android.widget.ImageView; import com.squareup.picasso.Picasso; public class CustomBindingAdapter { @BindingAdapter("bind:imageUrl") public static void loadImage(ImageView imageView, String url) { Picasso.with(imageView.getContext()).load(url).into(imageView); } } 

发现我的问题。 代替:

 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); } 

在你的布局中:

 ...    ...  ...