突然间我对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)
...仍然给出了以前的错误.
我的设置