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); }
在你的布局中:
... ... ...