Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android数据绑定错误:执行失败java.lang.RuntimeException:_Java_Android_Data Binding - Fatal编程技术网

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

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.

我试着从这里模拟一些例子: 除了图像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****

我的布局:

...
<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}"
            ... />
...