बस अचानक एंड्रॉइड के लिए मेरी बाइंडिंग काम करना बंद कर दिया, जो कुछ भी मैं अब बना रहा हूं, मुझे बस यह संदेश मिलता है।एंड्रॉइड बाइंडिंग्स काम करना बंद कर दिया
त्रुटि: निष्पादन कार्य के लिए विफल रहा ': 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();
}
को refactor करने के लिए ... अब भी पिछले त्रुटि देता है।
मेरे सेटअप
- एंड्रॉयड स्टूडियो: 2.3.3
- Gradle बिल्ड उपकरण: 2.3.3
यह दो तरह से बाध्यकारी, 'एंड्रॉयड की बात आती है: पाठ =" @ = {model.name} "' इस लाइन, यदि आपका चर 'है स्ट्रिंग' पर्याप्त है आप तो अन्य डेटाटाइप्स है, तो आप उलटा करने की जरूरत है बंधन। –
@RaviRupareliya हाँ इसकी 'एक स्ट्रिंग। – oreofeolurin
जैसा कि मैंने पहले ही बताया है, यदि यह 'स्ट्रिंग' है, तो 'इनवर्क्स बाइंडिंग' बिल्कुल आवश्यक नहीं है। –