ठीक है, इसलिए यह वास्तव में मुझे परेशान करने लगा है। यह त्रुटि बहुत ही विशेष तरीके से नहीं, बल्कि बहुत ही विशेष तरीके से सामने आती है।
मुझे यह कहकर शुरू करें कि मैंने पहले ही इस त्रुटि के बारे में अन्य प्रश्नों पर ध्यान दिया है, Google इसे भी पसंद करेगा। जहाँ तक मैं बता सकता हूँ, अधिकांश समान समस्याएं होती हैं क्योंकि लोग एक String
संसाधन या किसी अन्य चीज़ को संदर्भित करते हैं न कि उसी लेआउट फ़ाइल के भीतर, वे '@ आईडी' या कुछ इसी तरह के '+' का दुरुपयोग करते हैं।
मैं एक लेआउट में होने वाली समस्या .xml फ़ाइल के साथ a RelativeLayout
। इसमें कुछ TableLayout
, दो LinearLayout
और कुछ पाठ होते हैं और अंत में एक ProgressBar
। मैं जो चाहता हूं प्रगति पट्टी का उपयोग करके सापेक्ष लेआउट के साथ संरेखित किया जाना है android:layout_alignParentBottom="true"
और फिर प्रगति पट्टी के ऊपर दो रैखिक लेआउट संरेखित करें (प्रगति पट्टी के नीचे संरेखित रैखिक लेआउट, नीचे रैखिक लेआउट के ऊपर अन्य संरेखित)।
यह काफी सरल होना चाहिए और ऐसा लगता है जैसे यह काम करता है, अर्थात ग्राफिक दृश्य वांछित परिणाम दिखाता है। हालाँकि, और यहाँ समस्या आती है , ग्रहण मुझे दो रैखिक लेआउट पर एक त्रुटि देता है,
"त्रुटि: ऐसा कोई संसाधन नहीं मिला जो दिए गए नाम से मेल खाता हो (मान के साथ 'layout_above' @ id / LinearLayout_acc ')।"
और प्रगति पट्टी के संदर्भ में अन्य रैखिक लेआउट के लिए एक ही त्रुटि। मैंने ट्रिपल से अधिक जाँच की है कि कोई टाइपोस नहीं हैं (आईडी भी packagename.R.java में मौजूद है), और मैंने एक दर्जन बार परियोजना की सफाई करने की कोशिश की है।
जब (और ऑटो बिल्डिंग) बचत करते समय मुझे त्रुटि नहीं मिलती है, तब तक नहीं जब तक कि मैं परियोजना को चलाने का निर्णय नहीं लेता। एक और अजीब बात यह है कि जब मैं शीर्ष रैखिक लेआउट के बजाय प्रगति बार से नीचे के रैखिक लेआउट का उल्लेख करता हूं, तो मुझे कोई त्रुटि नहीं मिलती है!
मेरी लेआउट फ़ाइल:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_activity" >
<TableLayout
... />
<LinearLayout
android:id="@+id/LinearLayout_dist"
android:layout_above="@id/LinearLayout_acc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp" >
<TextView
... />
<TextView
... />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout_acc"
android:layout_above="@id/ProgressBar_statusScreen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
<TextView
... />
<TextView
... />
</LinearLayout>
<ProgressBar
android:id="@+id/ProgressBar_statusScreen"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="16dp" />
</RelativeLayout>
कृपया मदद करें, मुझे नहीं पता कि इस त्रुटि का क्या कारण है!
उत्तरों के साथ संपादित करें
श्रीकांत लेआउट फ़ाइल में उपस्थिति के क्रम को बदलने के समाधान के साथ आए थे ताकि संदर्भ पढ़ने पर तत्व केवल पहले से परिभाषित अन्य तत्वों को संदर्भित करें।
साथ ही, जैसा कि दूसरों ने पोस्ट किया है, एक संदर्भ में भी बदल रहा @id/
है @+id/
, त्रुटि संदेशों को हटा देता है। जैसा कि मार्को डब्ल्यू ने इस धागे में लिखा है , बात यह है कि आपको @+id/
पहली बार प्रत्येक आईडी का उल्लेख करना होगा और उसके @id/
बाद उपयोग करना होगा , भले ही पहली बार परिभाषा नहीं हो सकती है।
मैंने अधिकांश डिज़ाइन बनाया और संदर्भित आईडी को एक्लिप्स के ग्राफिकल एडिटर में सेट किया, इसलिए एक त्रुटि संदेश के परिणामस्वरूप कोड स्वचालित रूप से डाला गया था। शायद यह ग्रहण में एक बग है।