小编ore*_*rin的帖子

Android Bindings停止工作

突然间我对android stoped工作的绑定,我现在建立的任何东西,我只是得到这个消息.

错误:任务':app:compileDevDebugJavaWithJavac'的执行失败.

java.lang.RuntimeException:发现数据绑定错误.****/数据绑定错误****消息:找不到android.widget.EditText上值类型为java.lang.String的属性'android:text'的getter.file:C:\ path\to\layout\layout.xml loc:85:12 - 96:54****\data binding error****

我试过了什么

首先,如果我的文件中存在错误,则建议绑定不会编译,因此删除了我使用绑定到一个文件的所有布局文件 layout.xml.我有

 <EditText
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:text="@{model.name}" />
Run Code Online (Sandbox Code Playgroud)

...并且它运行良好,但是如果我添加双向绑定android:text="@={model.name}"它会抛出上一个错误.

接下来,我补充说

@InverseBindingAdapter(attribute = "android:text")
public static String captureEditTextValue(EditText view) {
    return view.getText().toString();
}
Run Code Online (Sandbox Code Playgroud)

...然后它会引发新的错误.

错误:任务':app:compileDevDebugJavaWithJavac'的执行失败.

java.lang.RuntimeException:发现数据绑定错误.****/数据绑定错误****消息:无法在视图类型'android.widget.EditText'文件中找到事件'android:textAttrChanged':C:\ Users\EdgeTech\AndroidStudioProjects\purse\purse-customer\app\src\main\res\layout\get_phone_layout.xml loc:85:12 - 96:54****\data binding error****

进一步,重构这一点

 @InverseBindingAdapter(attribute = "android:text", event = "android:textAttrChanged")
 public static String captureEditTextValue(EditText view) {
        return view.getText().toString();
 }
Run Code Online (Sandbox Code Playgroud)

...仍然给出了以前的错误.

我的设置

  • Android Studio:2.3.3
  • Gradle构建工具:2.3.3

java android 2-way-object-databinding android-databinding

8
推荐指数
1
解决办法
1048
查看次数