Android Studio "URI पंजीकृत नहीं है" की रिपोर्ट क्यों कर रहा है? [बन्द है]


161

इसलिए मैंने एंड्रॉइड स्टूडियो को एक कोशिश दी है, क्योंकि मुझे वास्तव में Resharper पसंद है और देखा कि IDE में उनकी कुछ कार्यक्षमता थी। अब एक डिफ़ॉल्ट नई परियोजना बनाने के बाद, मैंने एक नई लेआउट फ़ाइल जोड़ी और मौजूदा डिफ़ॉल्ट 'हैलो वर्ल्ड' उदाहरण लेआउट को बदलना चाहता था, और मुझे निम्नलिखित लाइनों पर "URI पंजीकृत नहीं है" त्रुटि मिली:

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

मैंने अभी तक डिफ़ॉल्ट जनरेट किए गए प्रोजेक्ट के अलावा और कुछ नहीं किया है। मैं एक और सवाल पर आया हूं जो संबंधित लगता है ( इंटेलीज एंड्रॉइड प्रोजेक्ट स्कीमा यूआरआई पंजीकृत नहीं है? ), लेकिन सिर्फ कुछ को अनदेखा करना मुझे अजीब लगता है। मैंने वास्तव में इसकी कोशिश की, लेकिन इसका कारण है RelativeLayout(और शायद सभी अन्य एंड्रॉइड से संबंधित सामान) किसी भी अधिक (त्रुटि संदेश) को मान्यता नहीं दी जानी चाहिए: "तत्व की घोषणा नहीं मिल सकती है RelativeLayout")।

इस समस्या को हल करने के बारे में कोई विचार?


9
एंड्रॉइड स्टूडियो को बंद करने और फिर से खोलने से मेरे लिए यह मुद्दा हल हो गया :)
उमैर

1
कैश को अमान्य और पुनः आरंभ करें तो यह काम करता है
thewhitetulip

जवाबों:


150

आप इस मुद्दे पर आ रहे हैं क्योंकि आप गलत गंतव्य पर हैं! लेआउट संसाधन फ़ाइल के लिए सही निर्देशिका "रेस-लेआउट" के तहत होनी चाहिए, "रिस-ऑल-लेआउट" नहीं


2
आह हाँ, आप बिल्कुल सही हैं। मैंने जो गलती की वह यह थी कि मैंने फ़ाइल को <प्रोजेक्ट रूट> \ <प्रोजेक्ट नाम> \ build \ res \ all \ debug \ लेआउट से खोला (यह डिफ़ॉल्ट रूप से मुझे लगता है कि खुला है, और ऊपर से नीचे तक काम करने के लिए इस्तेमाल किया जा रहा है, मुझे लगता है कि भ्रम की व्याख्या करता है)। इसके बजाय, किसी को वास्तव में <प्रोजेक्ट रूट> \ <प्रोजेक्ट का नाम> \ src \ main \ res \ लेआउट देखना चाहिए।
Xilconic

मुझे प्रकट फ़ाइल के लिए एक ही मुद्दा था
प्रसाद

धन्यवाद!! यह मेरे लिए अच्छा काम करता है ..
Vinoth सस्ता शराब

1
मैं एक ही समस्या मारा, लेकिन मेरे रास्ते सही थे। यह अंततः अमान्य / पुनरारंभ द्वारा तय किया गया था। सिर्फ कैश को अमान्य करने से काम नहीं चला। AUGH! :)
स्टीवन स्मिथ

1
मेरे लिए अमान्य / पुनरारंभ ने काम किया। धन्यवाद @stevensmith
अब्दुल समद

51

मेरे लिए यह इसलिए था क्योंकि मैं डिबग और रिलीज़ बिल्ड वेरिएंट का उपयोग कर रहा था। मैंने नए फ़ोल्डर्स src / debug / res / layout / some_layout.xml फ़ाइल को मैन्युअल रूप से जोड़ा है, और यह URI को मान्यता नहीं देता है। मैंने बिल्ड वेरिएंट को रिलीज़ करने के लिए स्विच किया, और फिर डीबग करने के लिए वापस आ गया। इससे Android Studio को कुछ पुनः लोड करना पड़ा, और त्रुटि दूर हो गई।

EDIT: यह भी जांचें कि आपके पास सही फ़ाइल नाम है। मैंने एक डीबग AndroidManifest.xml को जोड़कर इस मुद्दे को फिर से रखा था, लेकिन गलती से इसे AndroidManifest.xml.xml नाम दिया गया।


2
इसने मेरे लिए काम किया। बिल्ड वेरिएंट को कैसे स्विच करना है, इसकी तलाश करने वालों के लिए, यह एएस के सबसे बाएं पैनल पर लिखा गया है। इसे क्लिक करें, फिर इसके नीचे "डीबग" वास्तव में एक ड्रॉपडाउन है।
लेम्युएल

1
मेरे लिए, वही सच था। यदि आप ऐप के कस्टमाइज्ड के अलग-अलग फ्लेवर-लेआउट देख रहे हैं, तो एंड्रॉइड स्टूडियो द्वारा क्या लोड किया गया है, आपको एक त्रुटि मिलेगी।
नीरज शुक्ला

यह एक आकर्षण की तरह काम करता है !! धन्यवाद
विराग ब्रह्म २

आपने मेरा दिन बचाया !!
आदि

39

मैं Intellij IDEA का उपयोग करता हूं, लेकिन मुझे लगता है कि यह एंड्रॉइड स्टूडियो में भी काम करेगा, क्या आप IDE दाईं ओर कोने में "इवेंट लॉग" देख सकते हैं, क्या इसमें कुछ संदेश है जैसे " एंड्रॉइड फ्रेमवर्क प्रोजेक्ट में पाया गया है " कॉन्फ़िगर करें , इसका मतलब है कि आप एक फ्रेमवर्क कॉन्फ़िगरेशन होना चाहिए। यदि हां, तो बस संदेश लिंक का अनुसरण करें।
उसी तरह, आप " फ़ाइल> प्रोजेक्ट संरचना> मॉड्यूल " पर जा सकते हैं , और फिर एक एंड्रॉइड फेसलेट जोड़ सकते हैं।

यहां छवि विवरण दर्ज करें

वैसे, यदि मैं आपके जैसे एक अनुकूलित नामस्थान का उपयोग करना चाहता हूं, तो मैं अपने पैकेज के नाम के रूप में संसाधन पहचानकर्ता लिखूंगा क्योंकि मैं प्रकट तत्व के AndroidManifest.xml पैकेज विशेषता को परिभाषित करता हूं, नीचे मेरा कोड है।

<manifest package="com.my.name.android">
    ...
</manifest>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/apk/res/com.my.name.android">
</RelativeLayout>

आशा है कि यह आपकी मदद करता है।


2
@ मिचेल एलन हफ, आपने मुझे पढ़ाया, इसके लिए बहुत-बहुत धन्यवाद।
विंसटलिंग

कोई बात नहीं :) खुश स्टैकिंग।
माइकल एलन हफ

17

यह समस्या मेरे लिए अचानक प्रकट हुई, बिना किसी कारण के। मैंने अभी-अभी एंड्रॉइड स्टूडियो के सभी टैब बंद कर दिए और xml फ़ाइल को फिर से खोला, जिसमें समस्याएं थीं। समस्या सुलझ गयी! :)


3
मेरी जान बचाई ... :)
bangkokguy 19

केवल अगली बार जब तक मैं ऐप चलाने के लिए
ट्रिंग कर

कैश को अमान्य और पुनः आरंभ करें तो यह काम करता है
thewhitetulip

8

एंड्रॉइड स्टूडियो में 3.1.2 यह त्रुटि कैश मेमोरी के गलत सत्यापन के कारण होती है।

प्रोजेक्ट फ़ोल्डर में जाएं और .idea फ़ोल्डर की सभी सामग्री हटाएं

यह कैश मेमोरी को हटा देगा और प्रोजेक्ट को पुनः लोड करने से नया कैश मेमोरी फ़ोल्डर बन जाएगा और जाने के लिए अच्छा होगा।)


6

इसकी एक प्लगइन्स समस्या है।

  1. अपने Android स्टूडियो को पुनरारंभ करें।
  2. यह इनेबल प्लगइन्स के लिए एक पॉप विंडो दिखाएगा
  3. इनेबल प्लगइन्स पर क्लिक करें और फिर ओके पर क्लिक करें।

तब यह आपके स्टूडियो को फिर से चालू करेगा और काम ठीक होगा।

आशा है कि यह काम करेगा।


5

मेरी समस्या यह थी कि मेरे फ़ोल्डर इस प्रकार संरचित थे:

MyProject/ res/ layout/ main.xml layout-land/ main.xml

(मेरा Slayout-landफ़ोल्डर मेरे फ़ोल्डर में था layout)

मैंने इसे संरचना में बदल दिया और इसने मेरे लिए काम किया:

MyProject/ res/ layout/ main.xml layout-land/ main.xml

मुझे आशा है की इससे मदद मिलेगी!


5

इस त्रुटि के पीछे का कारण नहीं जानते, लेकिन मुझे यह कहीं पता चला और इससे मेरी समस्या हल हो गई।

  • "फ़ाइल> प्रोजेक्ट संरचना> मॉड्यूल" पर जाएं
  • "जोड़ें (+) " पर क्लिक करें
  • "Android" और "लागू करें" पर क्लिक करें और फिर "ठीक है"

4

यह पता चला कि मैं xml का DEBUG संस्करण संपादित कर रहा था, इसे ठीक करने के लिए, त्रुटि वाले टैब को बंद करें और इसे फिर से खोलें



2

मेरे लिए प्लगइन Android Supportकिसी भी तरह से निष्क्रिय हो जाते हैं। प्लगइन्स को सक्षम करना फिर से मेरे लिए काम करता है।

Settings > Plugins > Android Support

2

बिल्ड वेरिएंट में उपयुक्त स्वाद का चयन करें।

यदि आप Flavour1 के तहत कोई विशेष फ़ाइल देख रहे हैं, तो BuildVariants विंडो में उस स्वाद का चयन करें।

यदि आपका आईडीई एंड्रॉइड स्टूडियो है (इस लेखन के रूप में 3.2.1), तो आपको निचले बाईं ओर बिल्ड वेरिएंट विंडो ढूंढनी चाहिए, लंबवत संरेखित करना चाहिए।


1

कभी-कभी यह त्रुटि आपके प्रकट में अन्य त्रुटियों से संबंधित होती है। जांचें कि क्या कुछ गुम निर्भरताएं हैं और यदि सभी टैग बंद हैं। मेरे मामले में मैंने / res फ़ोल्डर में एक फ़ोल्डर हटा दिया था, मैंने इसे पुनर्स्थापित कर दिया और वह त्रुटि गायब हो गई।


1

मेरे लिए, अपमानजनक xml फाइलें हेडर लाइन को याद कर रही थीं ...

<?xml version="1.0" encoding="utf-8"?>

उसको जोड़कर तय किया।


1

इसे फिर से शुरू किया, वास्तव में अब जो काम करता है वह बिल्ड.ग्रेड के अंदर कुछ बकवास जोड़ने के लिए है। फिर कोशिश करें और सिंक करें। जब यह विफल हो जाता है तो बकवास को हटा दें और फिर से सिंक करें। इंडेक्सिंग के बाद, यह काम करता है।


1
  • "वरीयताएँ> भाषा और रूपरेखा> स्कीमा और DTDS" पर जाएं
  • "जोड़ें (+)" पर क्लिक करें
  • अप्लाई करें और उसके बाद ओके"

आशा है कि यह काम करेगा।


बस अपने url जोड़ें।
स्कारलेट

1

मेरे लिए, मैं gitlab से एक प्रोजेक्ट क्लोन करता हूं, इसमें सामग्री की तालिका है:

TradeClient / TradeClient / ऐप्स / ...

तो मैं इस समस्या का सामना कर रहा हूं, मैं नीचे दिए गए तरीके से समस्या को हल करता हूं:

  • TradeClient / ऐप / के रूप में बीच का रास्ता "TradeClient" को हटा दें ...
  • फिर फ़ाइल -> अमान्य कैश / पुनः आरंभ करें ...

0

एंड्रॉइड स्टूडियो में नया बिल्ड सिस्टम एक buildफ़ोल्डर बनाता है । कोड निरीक्षण इस फ़ोल्डर के साथ-साथ फ़ोल्डर पर भी करता है gradle। कोड निरीक्षण चलाते समय इन फ़ोल्डरों को ध्यान से अनदेखा किया जाना चाहिए।

मैंने एंड्रॉइड स्टूडियो टीम के साथ एक मुद्दा उठाया है:

https://code.google.com/p/android/issues/detail?id=56415


0

मुझे अब यह समस्या थी - मैंने लेआउट फ़ोल्डर के तहत एक नया फ़ोल्डर बनाया, जिसमें मेरे ऐप के "होम" पेज से संबंधित सभी xml होंगे और फिर एक अन्य फ़ोल्डर जो मेरी "सेटिंग्स" पेज से संबंधित होगा जैसा कि मैं अपने को व्यवस्थित करना चाहता था एक्सएमएल।

हालाँकि, एंड्रॉइड केवल xmls के लिए लेआउट फ़ोल्डर को पहचानता है, न कि लेआउट / होम या लेआउट / सेटिंग्स फ़ोल्डर को इसलिए कि यह मुझे त्रुटि दे रहा था।

Mazen Kasser जवाब के लिए धन्यवाद, उन्होंने मुझे यह पता लगाने में सहायता की।


0

इसमें हाल ही में सामग्री डिजाइन के लिए एक मौजूदा ऐप को माइग्रेट करने की कोशिश की गई। इसे ठीक करने के लिए मुझे बस इतना करना था कि परियोजना का संकलन एसडीके संस्करण बदल दिया जाए। फ़ाइल | प्रोजेक्ट सेटिंग्स। एप्लिकेशन का चयन करें और लॉलीपॉप या उच्चतर के लिए एक संकलन एसडीके संस्करण चुनें।


0

यहां बताए गए किसी भी समाधान ने मेरी मदद की। मैं अपनी समस्या सिर्फ किसी के लिए उपयोगी होने पर पोस्ट करूँगा। मेरे मामले में डेटा बाइंडिंग का उपयोग करके त्रुटि हो रही थी । ऐसा लगता है कि डेटा बाइंडिंग xmls मध्यवर्ती का उपयोग कर बनाया जाता है। यदि कोई त्रुटि को खोलने की कोशिश कर रहा है तो त्रुटि के साथ सही xml खोलने के बजाय इस " URI पंजीकृत नहीं " के साथ मध्यवर्ती xml दिखाएगा ।


0

मेरे पास यह समस्या थी और मेरे लिए यह एंड्रॉइड स्टूडियो के बाहर संसाधन फ़ाइलों को बनाने और हेरफेर करने के कारण था। मैंने एंड्रॉइड स्टूडियो के माध्यम से नई संसाधन फ़ाइलें और फ़ोल्डर्स बनाने के निर्देशों का पालन किया और समस्या को हल किया। आपको एक नया संसाधन फ़ाइल निर्देशिका बनाने की आवश्यकता है। यदि आपको इसकी आवश्यकता है तो यह आपके लिए एक निर्देशिका निर्दिष्ट या बनाने देगा। यदि आप विभिन्न संस्करणों के लिए लेआउट के लिए निर्देशिका बना रहे हैं, तो शीर्ष पर वह जानकारी दर्ज करें जिसमें उस संसाधन फ़ाइल का नाम शामिल है जिसे आप नए फ़ोल्डर में कॉपी करना चाहते हैं और संस्करण का चयन करें और Android संस्करण दर्ज करें। यह आपके संसाधन की एक प्रति के साथ उपयुक्त निर्देशिका बनाएगा।


0

एक और सुझाव, जो मेरे लिए समाधान था: मुझे लाइन में त्रुटि मिली

<resources xmlns:ns1="http://schemas.android.com/tools" xmlns:ns2="urn:oasis:names:tc:xliff:document:1.2">

मानों में। xml फ़ाइल जो स्वचालित रूप से निर्माण प्रक्रिया के दौरान उत्पन्न हुई थी।

यह androidstyle.xml फ़ाइल में उपसर्ग जोड़कर हल किया गया था ।

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="textColorPrimary">@color/textColorPrimary</item>
        <item name="colorBackground">@color/colorPrimaryDark</item>
    </style>

को बदलना पड़ा

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:colorBackground">@color/colorPrimaryDark</item>
    </style>

0

मेरे लिए यह तय है कि मैंने अब तक उल्लेख नहीं किया है - यदि आपके पास कई 'फ्लेवर' हैं, तो सुनिश्चित करें कि वर्तमान में चयनित 'बिल्ड वेरिएंट' उस लेआउट फ़ाइल के स्वाद से मेल खाता है जिसे आप देखने की कोशिश कर रहे हैं।


0

प्रोजेक्ट आयात के ठीक बाद किसी को भी यह त्रुटि हो रही है, यह एक असफल प्रारंभिक श्रेणीबद्ध आयात / सिंक को रोक सकता है। आमतौर पर इसका सामना गंभीर त्रुटियों (निचले दाएं कोने में विस्मयादिबोधक चिह्न) से होता है। मेरे लिए यह बहुत ही अजीब कारण था (प्रोजेक्ट फ़ोल्डर को सिम्बल किया गया था): https://stackoverflow.com/a/52952148/44166


0

एंड्रॉइड स्टूडियो में एंड्रॉइड रिएक्ट नेटिव प्रोजेक्ट खोलने में मुझे एक ही समस्या का सामना करना पड़ा।

मूल कारण है कि मैंने रिएक्ट नेटिव प्रोजेक्ट के एंड्रॉइड फ़ोल्डर के बजाय रिएक्ट नेटिव प्रोजेक्ट का रूट फ़ोल्डर खोला है ।

रिएक्ट नेटिव प्रोजेक्ट के एंड्रॉइड फोल्डर के तहत प्रोजेक्ट को फिर से खोलना मेरी समस्या का हल हो गया।


-3

Android ट्रैकर प्लगइन स्थापित करने का प्रयास करें। आप इसे स्टूडियो में पाएंगे।

स्टूडियो को फिर से शुरू करें

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