सुरक्षित-आर्ग प्लगइन को सक्षम करने के बाद डेटा बाइंडिंग से रूट दृश्य प्राप्त नहीं कर सकते


15

मैं एक एंड्रॉइड ऐप पर काम कर रहा हूं जिसमें डेटाबाइंडिंग का उपयोग किया गया है और वर्तमान में मैं सुरक्षित-आर्ग्स प्लगइन जोड़ने की कोशिश कर रहा हूं, लेकिन प्लगइन को सक्षम करने के बाद, मैं बाइंडिंग के माध्यम से रूट व्यू प्राप्त नहीं कर सकता हूं - एंड्रॉइड स्टूडियो त्रुटि देता है:

Unresolved Reference
None of the following candidates is applicable because of a receiver type mismatch:
* internal val File.root: File defined in kotlin.io

मैं एक साथ अच्छा खेलने के लिए डेटाबाइंडिंग और सेफ-आर्ग्स कैसे प्राप्त कर सकता हूं?

ध्यान दें कि कोड स्निपेट कोटलिन में है जबकि मैं खुशी से जावा उत्तर ले लूंगा। जावा में उतना आरामदायक नहीं है लेकिन मैं इसे आसानी से पढ़ सकता हूं और इसका अनुवाद कर सकता हूं।

मैं एक ही समस्या के साथ किसी और को त्रुटि संदेश और "सुरक्षित आर्ग्स" Googling द्वारा खोजने में सक्षम नहीं हुआ हूं। मैंने यहां Android डॉक्स में सूचीबद्ध क्लासपाथ के साथ पहली कोशिश की: https://developer.android.com/guide/navigation/navigation-pass-data

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0"

और फिर एक ट्यूटोरियल भी मिला जिसका सुझाव है कि मैं उपयोग करता हूं:

classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha07"

दोनों का एक ही मुद्दा था: बाइंडिंग.रोट ने प्लगइन को सक्रिय करने के साथ एक त्रुटि दी

यहाँ मेरे टुकड़े के लिए onCreateView () है। जब सुरक्षित-आर्ग सक्षम नहीं है और यह सक्षम होने पर काम नहीं करता है तो वह रिटर्न लाइन ठीक से काम करती है

   override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    binding = DataBindingUtil.inflate(inflater, R.layout.fragment_encoder, container, false)

    return binding.root
}

इस समस्या को हल करने या समझने में किसी भी तरह की मदद की सबसे अधिक सराहना की जाती है!

जवाबों:


11

मेरे पास एक ही मुद्दा है, यह मेरे लिए वायर्ड है, लेकिन बस नाम बदलने से लेआउट फिर से काम करेगा, इसके लिए प्रयास करें: डी


2
यह चाल, अजीब तरह से किया, धन्यवाद। दूसरों के लिए एक ही समस्या के साथ यहाँ आने के लिए, मुझे केवल रिफ्लेक्टर करना था> लेआउट xml फ़ाइल को उस वर्ग से जुड़ा हुआ नाम दें, जो बाइंडिंग को मान्यता नहीं दे रहा था। आपको अपने हिसाब से बाइंडिंग के लिए ऑटो-जनरेटेड क्लास टाइप का नाम बदलना होगा। एक बार जब मैंने ऐसा किया, तो सब कुछ सही ढंग से काम कर रहा था और मैं मूल नाम पर फिर से नाम बदलने में सक्षम था। यकीन नहीं है कि इस परियोजना के पुनर्निर्माण के लिए कुछ भी कैसे नहीं किया ..
हन्ना एस।

यदि आप सुरक्षित-आर्ग के साथ मुद्दों के कारण यहां हैं, तो इसके बजाय एक साझा ViewModel और LiveData का उपयोग करना चाहते हैं। यही कारण है कि मैं अब उपयोग कर रहा हूं क्योंकि मुझे सुरक्षित-आर्गों पर अटकने के लिए जाना पड़ता है और मैं बहुत खुश हूं
हन्ना एस।

24

मेरे पास एक ही मुद्दा है और आखिर में मैंने कोशिश की

फ़ाइल -> अमान्य कैश / पुनरारंभ करें

इससे मेरा काम बनता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.