갑자기 Android 용 바인딩이 작동을 멈추었습니다. 이제 빌드해야 할 모든 것,이 메시지가 나타납니다.Android Bindings Stopped working
오류 : 'app : compileDevDebugJavaWithJavac'작업에 대한 실행이 실패했습니다. 나는 하나 개의 파일까지 바인딩을 사용 어디
먼저가 내 파일에 오류가있는 경우 컴파일되지 않습니다 바인딩을 제안하고 시도 무엇
java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:Cannot find the getter for attribute 'android:text' with value type java.lang.String on android.widget.EditText. 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}" />
을 가지고 ... 그리고 내가 android:text="@={model.name}"
그것은 이전 오류가 발생 바인딩 양방향을 추가하지만 경우에, 잘 작동합니다.
다음, 나는 다음 새로운 오류가 발생합니다 ...
@InverseBindingAdapter(attribute = "android:text")
public static String captureEditTextValue(EditText view) {
return view.getText().toString();
}
를 추가합니다. 오류 : 'app : compileDevDebugJavaWithJavac'작업에 대한 실행이 실패했습니다.
java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:Could not find event 'android:textAttrChanged' on View type 'android.widget.EditText' file: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();
}
에 리팩토링, 더 갔다.
내 설정
- 안드로이드 스튜디오 : 2.3.3
- Gradle을 빌드 도구 : 2.3.3
양방향 바인딩의 경우, 변수가'String' 인 경우'android : text = "@ = {model.name}"'이 줄이면 충분합니다. 다른 데이터 유형을 사용하는 경우에는 inverse 제본. –
@RaviRupareliya 예. '문자열입니다. – oreofeolurin
그러면 이미 말했듯이 만약'String'이라면'InverseBinding'은 전혀 필요하지 않습니다. –