2010-02-08 14 views
258

मुझे एंड्रॉइड व्यू, Error parsing XML: unbound prefix on Line 2 में लगातार समस्या है।एंड्रॉइड व्यू में उत्पन्न होने वाली लगातार समस्याएं, XML को पार्स करने में त्रुटि: अनबाउंड उपसर्ग

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:orientation="vertical" android:id="@+id/myScrollLayout" 
android:layout_width="fill_parent" android:layout_height="wrap_content"> 
    <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" 
    android:text="Family" android:id="@+id/Family" 
    android:textSize="16px" android:padding="5px" 
    android:textStyle="bold" android:gravity="center_horizontal"> 
    </TextView> 

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:orientation="vertical" android:scrollbars="vertical"> 
     <LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout" 
     android:layout_width="fill_parent" android:layout_height="wrap_content"> 
     </LinearLayout> 
    </ScrollView> 

</LinearLayout> 
+6

इसके लिए पोस्ट किए गए सभी उत्तरों की जांच करें; वे सभी मान्य हैं। मुद्दा एक्सएमएल नेमस्पेस है और कई तरीकों से यह बहुत गलत हो सकता है। – whitey04

+0

एक त्वरित नोट, अगर आप अपनी पहली पंक्ति में सभी टिप्पणियों को भूल जाते हैं, तो आप यह भी ध्यान नहीं देंगे कि आपके लेआउट में कुछ गड़बड़ है (जैसे: ) – Mike

उत्तर

499

कारणों हो सकता है की एक जोड़े:

1) आपने गलत नाम स्थान, या विशेषता में कोई गलती के साथ इस त्रुटि देखते हैं। की तरह 'xmlns' गलत है, यह xmlns:android

2) सबसे पहले नोड होना चाहिए शामिल करने की जरूरत है: xmlns:android="http://schemas.android.com/apk/res/android"

3) आप विज्ञापनों की तरह AdMob जांच कस्टम पैरामीटर को एकीकृत कर रहे हैं: adSize, आप की जरूरत

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

4) आप LinerLayout उपयोग कर रहे हैं आप उपकरण

xmlns:tools="http://schemas.android.com/tools"

0 परिभाषित करने के लिए हो सकता है
+0

"पहला नोड" से आपका क्या मतलब है? मूल प्रश्न में टेक्स्टव्यू है? –

+1

नहीं, LinearLayout यह पहला नोड –

+1

है ... और नए Google Play AdMob में यह है: xmlns: ads = "http://schemas.android.com/apk/res-auto" – user1010160

26

जैसा कि आप उल्लेख करते हैं, आपको right namespace निर्दिष्ट करने की आवश्यकता है। आप यह त्रुटि गलत नामस्थान के साथ भी देखते हैं।

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="10dip"> 

काम नहीं करेगा।

बदलें:

xmlns="http://schemas.android.com/apk/res/android" 

xmlns:android="http://schemas.android.com/apk/res/android" 

को त्रुटि संदेश सब कुछ करने के लिए बात कर रहा है कि शुरू होता है "एंड्रॉयड:" के रूप में एक्सएमएल पता नहीं है "android:" नामस्थान क्या है ।

xmlns:android इसे परिभाषित करता है।

56

मुझे यह समस्या थी।

सुनिश्चित करें कि उपसर्ग (एंड्रॉइड: [जो भी]) सही ढंग से लिखा गया है और सही ढंग से लिखा गया है। लाइन xmlns:android="http://schemas.android.com/apk/res/android" के मामले में सुनिश्चित करें कि आपके पास पूर्ण उपसर्ग xmlns:android है और यह सही वर्तनी है। किसी अन्य उपसर्ग के साथ ही - सुनिश्चित करें कि वे सही वर्तनी में हैं और android:[name] है। यही मेरी समस्या का हल है।

+1

के लिए +1 हाँ, मेरे मामले में त्रुटि के कारण हुई थी एंड्रोई: src = "@ drawable/half" - जो स्पष्ट रूप से गलत था! –

+0

हां, मुझे एक ही समस्या थी। मैं "xmln:" भाग भी खो रहा था। – user1032613

22

यह त्रुटि हो सकता है मामले में होता है आप इस तरह के रूप में संयुक्त राष्ट्र से परिभाषित उपसर्ग का उपयोग करें:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TabHost 
    XYZ:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 


</TabHost> 

एंड्रॉयड संकलक XYZ है क्या, क्योंकि यह अभी तक परिभाषित नहीं किया गया था पता नहीं है।

अपने मामले में, आपको नीचे xml फ़ाइल के रूट नोड को परिभाषित करना चाहिए।

xmlns:android="http://schemas.android.com/apk/res/android" 

+2

यह एक मेरे लिए किया था। यह एक लंगड़ा गलत था: एंड्रॉइड के बजाय: लेआउट_वेट मैंने एन्डाइड टाइप किया था: layout_weigth। – Yahel

+0

गुयेन, XYZ को परिभाषित करने के लिए कैसे? धन्यवाद –

+1

@AnatoliyShuba, इस तरह - xmlns: XYZ = "http://schemas.android.com/apk/res-auto" – radu122

1

मेरे मामले में त्रुटि ऊपर एक्सएमएल नाम स्थान मुद्दों में से किसी की वजह से नहीं किया गया था। इसके बजाय यह android:id विशेषता का स्थान था - इसे विशेष तत्व की घोषणा में पहला आइटम होना आवश्यक था।

तो यह:

<TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/bottomtext" 
     android:singleLine="true" /> 

... इस तरह पढ़ने के लिए की जरूरत:

<TextView android:id="@+id/bottomtext" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:singleLine="true" /> 
+5

यह अजीब बात है, एक तत्व में विशेषताओं का क्रम कोई फर्क नहीं पड़ता ... – WOUNDEDStevenJones

8

मेरे लिए, मैं, पहली पंक्ति यहाँ पर "अबाध उपसर्ग" त्रुटि मिली, हालांकि मैं गलत वर्तनी था चौथी रेखा पर एंड्रॉइड।

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
anrdoid:fillViewport="true" 
> 
7

मुझे एक ही समस्या थी, और पाया कि समाधान एंड्रॉइड को जोड़ने के लिए था: उपकरण को पहले नोड में जोड़ना था। मेरे मामले में यह एक LineraLayout है:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
+0

हां, यदि आप टूल्स का संदर्भ देते हैं, लेकिन टूल के लिए नेमस्पेस न जोड़ें, तो आपको यह भी मिल जाएगा। –

98

मैं इसे एक अलग उत्तर जोड़ने जा रहा हूं क्योंकि मैं इसे यहां नहीं देखता हूं। यह 100% क्या Pentium10 के लिए नहीं कहा है, लेकिन मैं के लिए Error parsing XML: unbound prefix

मैं ads:adSize तरह AdMob विज्ञापन के लिए कस्टम पैरामीटर उपयोग कर रहा था बाहर कर देता है खोज के द्वारा यहां समाप्त हुए, लेकिन मैं नहीं जोड़ा था

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 

को लेआउट। एक बार मैंने इसे जोड़ने के बाद यह बहुत अच्छा काम किया।

10

ViewPager संकेतक के लिए अबाध उपसर्ग त्रुटि:

अपने parentLayout में निम्नलिखित शीर्ष लेख टैग के साथ साथ:

xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 

भी जोड़ें:

xmlns:app="http://schemas.android.com/apk/res-auto" 

यह किया मेरे लिए चाल

2

यह त्रुटि आमतौर पर तब होती है जब आपने xmlns:mm को ठीक से शामिल नहीं किया है, यह आमतौर पर कोड की पहली पंक्ति में होता है।

मेरे लिए

यह था ..

xmlns: मिमी = "http://millennialmedia.com/android/schema"

है कि मैं कोड

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:mm="http://millennialmedia.com/android/schema" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:layout_marginTop="50dp" 
android:layout_marginBottom="50dp" 
android:background="@android:color/transparent" > 
की पहली पंक्ति में याद किया
1

यह सब के अलावा, यह परिदृश्य भी है जहां यह त्रुटि होती है-

जब आप या आपकी लाइब्रेरी प्रोजेक्ट कस्टम विशेषता int attr को परिभाषित करती है .xml, और आप नामस्थान को परिभाषित किए बिना इन विशेषताओं को अपनी लेआउट फ़ाइल में उपयोग करते हैं।

आम तौर पर हम अपनी लेआउट फ़ाइल के शीर्षलेख में इस नेमस्पेस परिभाषा का उपयोग करते हैं।

xmlns:android="http://schemas.android.com/apk/res/android" 
फिर

करें कि आपकी फ़ाइल में सभी विशेषताओं के साथ

android:ATTRIBUTE-NAME 

आप अपने attirbute के कुछ करता है, तो identfy करने की जरूरत है शुरू shoud एंड्रॉयड के अलावा कुछ के साथ शुरू नहीं कर रहा है:

तरह attribute-name
temp:ATTRIBUTE-NAME 

इस मामले में आपके पास यह "temp" नामस्थान के रूप में भी है, आमतौर पर-

xmlns:temp="http://schemas.android.com/apk/res-auto" 
0

यह आमतौर पर मेरे साथ होता है जब मैं एंड्रॉइड को गलत करता हूं - मैं सिर्फ एंड्रॉइड या समान टाइप करता हूं, और यह पहली बार स्पष्ट रूप से प्रोग्रामिंग के कई घंटों के बाद स्पष्ट नहीं है, इसलिए मैं सिर्फ "एंड्रॉइड" के लिए एक खोज करता हूं और देखता हूं अगर खोज एक टैग छोड़ देती है - अगर ऐसा होता है तो मेरे पास नज़दीक दिखता है और मैं देखता हूं कि टाइपो कहां था।

3

मैं नए लोगों और लोगों के लिए थोड़ा और फेंक दूंगा, जैसे कि एक्सएमएल समझ में नहीं आता है।

एक बहुत अच्छे उत्तर के ऊपर उत्तर, लेकिन सामान्य उत्तर यह है कि आपको config.xml फ़ाइल में उपयोग किए गए किसी भी नामस्थान के लिए नामस्थान की आवश्यकता है।

अनुवाद: कोई भी XML टैग नाम जिसमें नामस्थान वाला टैग है जहां ब्ला नामस्थान और फ्यूबर एक्सएमएल टैग है। नामस्थान आपको एक्सएमएल को अपने टैग नामों के साथ समझने के लिए कई अलग-अलग टूल्स का उपयोग करने देता है। उदाहरण के लिए, इंटेल एक्सडीके नेमस्पेस इंटेलक्सडीके का उपयोग करता है और एंड्रॉइड एंड्रॉइड का उपयोग करता है। इस प्रकार आपको निम्नलिखित नामस्थानों की आवश्यकता है या निर्माण रक्त को फेंकता है (यानी XML को अनदेखा करने में त्रुटि: अनबाउंड उपसर्ग) जिसका अनुवाद किया गया है: आपने नामस्थान का उपयोग किया था, लेकिन इसे परिभाषित नहीं किया था।

xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:intelxdk="http://xdk.intel.com/ns/v1" 
1

आपको बस अपने रूट टैग में उचित नाम स्थान जोड़ने की आवश्यकता है। xmlns: android = "http://schemas.android.com/apk/res/android" एंड्रॉइड elemets इस नाम स्थान में घोषित किए गए हैं। यह वर्ग या पैकेज आयात करने जैसा ही है।

संबंधित मुद्दे