Android दृश्य में बार-बार आने वाले मुद्दे, XML को पार्स करने में त्रुटि: अनबाउंड उपसर्ग


296

मैं, एंड्रॉयड ध्यान में रखते हुए बार-बार समस्या है Error parsing XML: unbound prefix on Line 2

<?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>

9
इसके लिए पोस्ट किए गए सभी उत्तरों की जांच करें; वे सभी वैध हैं। समस्या XML नामस्थान और कई मायनों में यह बहुत गलत हो सकता है।
श्वेत ०४

एक त्वरित नोट, यदि आप अपनी पहली पंक्ति में सभी टिप्पणी को भूल जाते हैं, तो आप यह भी नहीं देखेंगे कि आपके लेआउट में कुछ गड़बड़ है (जैसे: <? Xml संस्करण = "1.0" एन्कोडिंग = "utf-8"? > <! - सभी
माइक से

जवाबों:


554

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

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

2) पहले नोड को शामिल करने की आवश्यकता है: xmlns:android="http://schemas.android.com/apk/res/android"

3) यदि आप AdMob को एकीकृत कर रहे हैं, तो कस्टम मापदंडों की जांच करें ads:adSize, जैसे आपको चाहिए

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

4) यदि आप उपयोग कर रहे हैं तो आपको LinearLayoutउपकरणों को परिभाषित करना पड़ सकता है:

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


"प्रथम नोड" से आपका क्या तात्पर्य है? मूल प्रश्न में यह है कि TextView?
डेविड डोरिया

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

बहुत बहुत धन्यवाद, मैंने इस मुद्दे को 3 में हल कर दिया है इस पंक्ति को xmlns जोड़कर: ads = " schemas.android.com/apk/lib/com.google.ads " +1 जवाब के लिए
Shylendra Madda

101

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

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

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

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


63

मुझे भी बिल्कुल यही समस्या है।

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


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

हां, मुझे भी यही समस्या थी। मुझे "xmln:" भाग भी याद आ रहा था।
user1032613

32

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

<?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"

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

xmlns:android को परिभाषित।


23

यह त्रुटि उस स्थिति में हो सकती है जब आप बिना परिभाषित उपसर्ग का उपयोग करते हैं जैसे:

<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>

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

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

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


2
यह एक मेरे लिए किया था। यह एक लंगड़ा मिस्टेक था: एंड्रॉइड के बजाय: layout_weight मैंने टाइप किया था anrdoid: layout_weigth।
येलहेल

गुयेन, एक्सवाईजेड को कैसे परिभाषित करें? धन्यवाद
अनातोलीय Shuba

10

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

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

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"

इसने मेरे लिए चाल चली।


9

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

<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">

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

3

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

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

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

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

3

ठीक है, यहां बहुत सारे समाधान हैं लेकिन गैर वास्तव में समस्या के मूल कारण की व्याख्या करते हैं इसलिए हम यहां जाते हैं:

जब आप एक विशेषता देखते हैं जैसे android:layout_width="match_parent"कि androidभाग उपसर्ग है, तो यहां विशेषता के लिए प्रारूप है PREFIX:NAME="VALUE"। एक्सएमएल में, नामस्थान और उपसर्ग नामकरण के टकराव से बचने के तरीके हैं उदाहरण के लिए हम एक ही नाम के साथ दो अलग-अलग गुण हो सकते हैं, लेकिन विभिन्न उपसर्ग जैसे: a:a="val"और b:a="val"

उपसर्गों का उपयोग करने के लिए जैसे androidया appआपके किसी अन्य को xmlnsविशेषता का उपयोग करके नामस्थान को परिभाषित करना चाहिए ।

इसलिए यदि आपके पास यह समस्या है तो बस उपसर्ग खोजें जिसमें एक नामस्थान परिभाषित नहीं है, यदि आपके पास tools:...आपके पास कुछ उत्तर दिए गए सुझाव के रूप में उपकरण नामस्थान जोड़ना चाहिए, यदि आपके पास app:...विशेषता है तो आपको xmlns:app="http://schemas.android.com/apk/res-auto"मूल तत्व में जोड़ना चाहिए

आगे की पढाई:

एक्सएमएल नेमस्पेस सरल विवरण

W3 में XML नामस्थान


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

मेरे मामले में उपरोक्त xml नामस्थान समस्याओं में से किसी के कारण त्रुटि नहीं हुई थी। इसके बजाय यह का स्थान था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" />

1

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

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

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

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

फिर सुनिश्चित करें कि आपकी फ़ाइल में सभी विशेषताएँ ज़ोर से शुरू हों

android:ATTRIBUTE-NAME

अगर आपके कुछ अटायर की शुरुआत Android के अलावा किसी और चीज से नहीं हो रही है तो आपको पहचान करने की जरूरत है: ATTRIBUTE-NAME

temp:ATTRIBUTE-NAME

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

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

1

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


0

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


0

मुझे यह त्रुटि ज़मारिन में मिली जब मैं उपयोग कर रहा था

  <android.support.v7.widget.CardView  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    card_view:cardElevation="4dp"  
    card_view:cardCornerRadius="5dp"  
    card_view:cardUseCompatPadding="true">  
  </android.support.v7.widget.CardView>

android.support.v7.widget.CardView के लिए नगेट पैकेज स्थापित किए बिना एक लेआउट फ़ाइल में

लागू नगेट पैकेज स्थापित करने से समस्या ठीक हो गई। आशा है कि यह मदद करता है, मैं इस जवाब को सूची में कहीं भी नहीं देखता था

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