एंड्रॉइड स्टूडियो में "प्रतीक आर को हल नहीं किया जा सकता"


715

मेरे सभी वर्गों में हर उदाहरण में जहां मैं संदर्भ देता हूं R.id.something, Rलाल रंग में है और यह कहता है कि "प्रतीक आर को हल नहीं कर सकता है"। हर बार जब R.layout.somethingयह लाल रंग में रेखांकित होता है और कहता है कि "विधि सेटकोन्टव्यू (?)" को हल नहीं कर सकता है। प्रोजेक्ट हमेशा ठीक बनाता है। हर समय यह देखना कष्टप्रद होता है। मैंने कुछ इसी तरह के बारे में कई अन्य प्रश्नों को यहां पढ़ा है, लेकिन अधिकांश में ग्रहण से परियोजनाएं शामिल हैं। मैं एंड्रॉइड स्टूडियो का सबसे हाल का संस्करण होने का विश्वास करता हूं और परियोजना का उपयोग एंड्रॉइड स्टूडियो के साथ किया गया था और बिना किसी समस्या के "आर" समस्याओं को हल नहीं कर सकता। मैं जानना चाहूंगा कि अगर किसी को पता है तो इसका क्या कारण है।


अतीत में मुझे xml त्रुटियाँ मिली हैं जैसे: प्रगतिबार android.widget.textview में डाली नहीं जा सकती है, और मैंने तय किया कि केवल टेक्स्टव्यू का नाम बदलकर। मैं अभी भी वास्तव में नहीं जानता कि किस त्रुटि के कारण शुरुआत हुई।
ez4nick

यदि आपने नाम बदल दिया है, तो शायद अब आप एक स्ट्रिंग संदर्भ का उपयोग करने का प्रयास कर रहे हैं जो कि res / strings.xml में मौजूद नहीं है?
आईबेल

2
मैंने इस प्रश्न को पूछने से पहले कई बार खोजा और आपके द्वारा उल्लेखित सहित कई समान प्रश्न पाए। मैंने उस प्रश्न में सुझाव पढ़ा था और मेरी किसी भी जावा फाइल में कोई Android.Rr आयात नहीं है।
ez4nick

2
अरे सब लोग मैं यह सवाल पूछना भूल गया क्योंकि यह बहुत पहले पूछा गया था। मुझे एक साल पहले अपना खुद का जवाब स्वीकार करना चाहिए था जो अब इस से ऊपर की टिप्पणी है। मुद्दा बस उस समय के साथ था जब एंड्रॉइड स्टूडियो उस समय शुरुआती दौर में था और एक नए डेवलपर के रूप में मुझे कभी भी इसका उपयोग नहीं करना चाहिए था। निश्चिंत रहें सब कुछ ठीक चल रहा है और अब हो गया है। यदि यह संभव है तो कृपया मेरे मूल उत्तर को हटा दें ताकि मैं इसे स्वीकार कर सकूं।
ez4nick

3
नहीं मिल रहा है आर अपनी त्रुटि एक अपनी गलती के कारण एक त्रुटि बनाएँ अपनी अन्य त्रुटियों को ठीक करें और आप ठीक होना चाहिए।
Just_someone

जवाबों:


720

मेरा भी यह मुद्दा था। एक साधारण 'ग्रेडलेव क्लीन' और 'ग्रेडलेव बिल्ड' ने चाल चली।


बिल्ड-> क्लीन प्रोजेक्ट पर क्लिक करें और यह एक ग्रेडल क्लीन प्रदर्शन करेगा


56
कुछ समय के लिए आपको एंड्रॉइड स्टूडियो को पुनरारंभ करने की भी आवश्यकता है। या कम से कम मेरे लिए।
फू बार यूजर

24
जो लोग कमांड लाइन का उपयोग करने के बारे में बात करते हैं, वे बिल्ड-> क्लीन प्रोजेक्ट पर क्लिक करें और जो 'ग्रेडेल क्लीन' करेगा। ;)
श्री कॉनसोलटो

22
कोई भाग्य ... सफाई पुनर्निर्माण मुझे काम नहीं कर रहा है
CandleCoder

7
यदि साफ, पुनर्निर्माण, अमान्य कैश-पुनरारंभ से हल नहीं होता है: आयात पैकेज ।;
सुदीप भंडारी

2
मेरे लिए यह समस्या पैदा कर रहा था: अपीयरेंस में अपीयरेंस में ApplicationId और पैकेज नाम में बेमेल (और हालांकि ऑटो आयात ने R फाइल के लिए गलत पता जोड़ा)। मैं दोनों के बीच अंतर को स्पष्ट करने के लिए इस छोटे से लेख की सलाह देता हूं। blog.stylingandroid.com/package-name-vs-application-id
टीना

227

एंड्रॉइड स्टूडियो के नवीनतम संस्करणों में, कम से कम मेरे लिए, निम्नलिखित काम करता है:

"टूल्स" -> "एंड्रॉइड" -> "ग्रेड फाइल के साथ सिंक प्रोजेक्ट"

नवीनतम एंड्रॉइड स्टूडियो 3.1.3 (जुलाई 2018) में, "मेनस्ट्रीम फाइल के साथ सिंक प्रोजेक्ट" मेन मेनू बार में उपलब्ध है।

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


उस समय आपके द्वारा उपयोग किए गए Android स्टूडियो का संस्करण क्या था?
जोएल हैंडवेल

मेरे लिए काम नहीं करता है (एंड्रॉइड स्टूडियो 0.8.14)। लेकिन, बिल्ड> क्लीन प्रोजेक्ट अच्छा काम करता है।
Phat H. VU

अभी भी एंड्रॉइड 1.2.1 में काम करता है। यदि यह पहली बार में काम नहीं करता है, तो इसे एक से अधिक बार करना याद रखें।
नोब

यह केवल एक चीज है जो मेरे लिए काम करती है। मैंने पहले अन्य सभी समाधानों की कोशिश की।
मैक

1
एंड्रॉइड स्टूडियो 3.1.1 में, यह विकल्प फ़ाइल में है -> ग्रैडल फ़ाइलों के साथ सिंक प्रोजेक्ट
ऋषिकेश कदम

155

मैं ०.३.० का उपयोग कर रहा था। यह मुख्य अपराधी था। मेरी जिंदगी से 6.50 घंटे बर्बाद हुए। ग्रैड 3.2.1 ने त्रुटि को दूर किया।

classpath 'com.android.tools.build:gradle:3.2.1'

ग्रेडेल संस्करण को बदलने के बाद हल की गई समस्या। विवरण इतिहास यहां पाया जा सकता है


9
फिर भी एंड्रॉइड स्टूडियो डेवलपर्स द्वारा एक और अद्भुत उपलब्धि। वापस लौटना 3.2.1वास्तव में एकमात्र उपाय था जो मेरे लिए काम कर रहा है ...
Vucko

1
आश्चर्यजनक रूप से अभी भी 2 महीने बाद एक मुद्दा है। नवीनतम संस्करण (3.3.2) ने इसे ठीक नहीं किया, 3.2.1 किया।
जेकस्टेम

3.2.1आप फिर से ग्रेडेल में जाने के बजाय एंड्रॉइड स्टूडियो को संस्करण में अपग्रेड कर सकते हैं 3.3। मेरा जवाब यहाँ
arne.z

यह 3.3.0 को 3.2.1 में बदलकर काम करता है, लेकिन मेरा सवाल यह 3.3.0 पर ठीक काम कर रहा था, मेरे पास सिर्फ रिफ्लेक्टर और अपडेटेड एक्सपीएल फाइल और ग्रेडल फाइल थी और इसमें सिंक सिंक था। मुझे पता है कि क्या कारण हो सकता है
insoftservice

25 घंटे का इंटरनेट और ऐसा लगता है कि यह एकमात्र कार्यशील समाधान है। धन्यवाद एंड्रॉइड स्टूडियो: (....
नहाबे एडविन

108

मेरे पास एक समान समस्या है और यहां मैंने वही किया है:

ग्रेडल के साथ स्वच्छ परियोजना और सिंक परियोजना,

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

मेरे sdk में buildTools संस्करण की जाँच करें यहां छवि विवरण दर्ज करें

बिल्ड ग्रेडेल (मॉड्यूल) से 8 से 9 तक minSdkVersion बदलें

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

लेकिन यह सब मदद नहीं करता था।

अंत में मुझे जवाब मिला (यह मेरे मामले में काम आया)

बिल्ड.ग्रेडल (मॉड्यूल: ऐप) से बदलें

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

या

फ़ाइल का चयन करें | प्रोजेक्ट संरचना परिवर्तन बिल्ड उपकरण संस्करण 21.1.1 पर

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


इसने मेरे लिए भी काम किया, बिल्ड बदलना और ग्रेडेल (मॉड्यूल) फाइलें सेट करना
Samuele Bolognini

धन्यवाद, बुद्धिमान की तरह, यह समाधान था।
देव देव

58
  1. अपनी xml फ़ाइलें जांचें।
  2. स्वच्छ परियोजना।

यह बात है।

उदाहरण के लिए मेरे पास एक प्रविष्टि थी strings.xml:

<string name="A">Some text</string>

और activity_main.xmlमैंने इस स्ट्रिंग प्रविष्टि का उपयोग किया

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

प्रोजेक्ट के साथ काम करते समय, मैंने उसे हटा दिया

 <string name="A">Some text</string>

और फलस्वरूप activity_main.xmlमान्य नहीं हुआ। परिणामस्वरूप: आर को हल नहीं कर सकता।

इसलिए, अपनी *.xmlफ़ाइलों और स्वच्छ परियोजना की जाँच करें ।


इसने वास्तव में मेरी जान बचाई [PLUS ONE]
जिंजहेड

मेरी XML में से एक लापता छवि ने मेरे लिए इस समस्या का कारण बताया। छवि को फ़ोल्डर में रखो, साफ किया गया और आर अब फिर से खुश है।
केसी मरे

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

यह अन्य डेवलपर्स के पढ़ने के लिए है। इस अकेले दृष्टिकोण को इस मुद्दे को हल करना चाहिए क्योंकि यह मेरे लिए था।
परमवीर सिंह करवाल

6
IDE में खराब XML फ़ाइलों को रेखांकित करने के लिए कोई प्रतिक्रिया क्यों नहीं है?
फुहरामैन

53

यदि आप जावा फ़ाइलों या निर्देशिकाओं को अन्य स्थानों पर ले जाने के बाद यह त्रुटि देखते हैं , तो आप गारंटी दे सकते हैं कि एंड्रॉइड स्टूडियो ने उलझन में डाल दिया है। और अंदाज लगाइये क्या? उन कार्यों को पूर्ववत करना समस्या को ठीक नहीं करता है।

तो आप एक साफ कोशिश करते हैं, लेकिन वह काम नहीं करता है।

और पुनः आरंभ करने से भी काम नहीं चलता।

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

एंड्रॉइड स्टूडियो इस बात की जानकारी रखता है कि कौन सी फाइलें अन्य फाइलों पर निर्भर हैं। और चूंकि फाइलों को इधर-उधर करना सही तरीके से लागू नहीं होता है, चलती हुई फाइलें त्रुटियों का कारण बनती हैं। और यह सब नहीं है: निर्माण को गति देने के प्रयास में इन निर्भरताओं के कैश का उपयोग किया जाता है।

इसका मतलब है कि आपको न केवल पुनरारंभ करना होगा, बल्कि आपको पवित्रता को बहाल करने (या अधिक सटीक रूप से, पुनर्निर्माण) करने के लिए उन कैश को अमान्य करने की आवश्यकता है।


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

एंड्रॉइड स्टूडियो के हाल के संस्करणों में, अमान्य मेनू और रीस्टार्ट अब डिफ़ॉल्ट मेनू चयन हैं। इससे कम से कम कुछ लोगों को मदद मिलनी चाहिए। (बहुत बुरा वे पहली बार में इस त्रुटि का कारण बनने वाले सभी पागल कीड़े को ठीक नहीं करते हैं!)
स्कॉट बिग्स

1
किसी प्रोजेक्ट को स्थानांतरित करने और नाम बदलने के बाद मुझे यह त्रुटि मिली। यह सभी सफाई और पुनः आरंभ नहीं करने के बाद आर समस्या को हल किया। धन्यवाद।
फ्रैंकरामन

2
यह लगभग एक कप कॉफी प्राप्त करने के समान समय लेता है - जो बदले में एक अच्छा कॉफी शावर लेने के लिए इस्तेमाल किया जा सकता है अगर यह अभी भी आर लाल रंग में चिह्नित करता है ... ヽ (´ ー `)
M

1
मेरी पिछली टिप्पणी के लिए gif मिला -> tenor.com/view/…
ZooMagic

30

मुझे लगता है कि यदि आप अपनी गतिविधियों की फ़ाइलों को डिफ़ॉल्ट एक से दूसरे फ़ोल्डर में डालते हैं। उपयोग करने वाली सभी गतिविधियों के लिए आपको com.example.yourproject.R(यह आपकी परियोजना Rफ़ाइल नहीं Android.Rफ़ाइल है) आयात करने की आवश्यकता है R। उदाहरण के लिए, MainActivityफ़ाइल में यह लाइन डालें:

import com.example.yourproject.R;

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

और मुझे लगता है कि यह बेहतर है कि तय होने के बाद, आपको अपनी परियोजना को साफ करना चाहिए और फिर निर्माण करना चाहिए। या अपने डिवाइस या एमुलेटर के साथ डिबग के लिए Shift + F9 दबाएं। मैं असली डिवाइस पर डिबग करना पसंद करता हूं।
नन्हजाहॉन्ग

यह सबसे अच्छा उपाय है। धन्यवाद दोस्त
अरुणदेव

यह उत्तर जादू की छड़ी थी। धन्यवाद
leeCoder

28

इस मुद्दे के कई कारण प्रतीत होते हैं। हाल ही में, मैंने न्यूएक्टिविटी नामक परीक्षण के साथ एक गतिविधि जोड़ी। इसने एक फाइल बनाई जिसे नाम दिया गया res/menu/new.xmlऔर ग्रेडेल को वह नाम पसंद नहीं आया क्योंकि नया एक आरक्षित शब्द है।

gradlew clean

या

"Tools" -> "Android" -> "Sync Project with Gradle Files"

वे निश्चित रूप से कोशिश करने के लिए अच्छी चीजें हैं, लेकिन आपके पास कुछ अन्य मुद्दे हो सकते हैं जिन्हें आपको उन आदेशों को चलाने से पहले हल करना होगा।


धन्यवाद मेरे लिए भी काम किया। छोटा सवाल - अगर मैं इसे इस तरह से करना चाहता हूं तो मुझे कहां से साफ करना चाहिए (जैसे मैंने "टूल्स" -> "एंड्रॉइड" -> "ग्रेड फाइल के साथ सिंक प्रोजेक्ट") किया?
सेर्गी

एक कमांड टर्मिनल खोलें, प्रोजेक्ट डायरेक्टरी पर स्विच करें और "./gradlew clean" पर अमल करें
chawkinsuf

यही मेरे लिए था। धन्यवाद!
टाइनिग्रासहॉपर

यह 'प्रोजेक्ट के पुनर्निर्माण' से बेहतर समस्या का समाधान कैसे करता है?
इगोरगानापोलस्की

हां, मेरे मामले में मैंने एक png फ़ाइल जोड़ी है, जिसे "import.png" कहा जाता है। मुझे इसका नाम बदलना पड़ा, मेरे मामले में "import_icon.png" और फिर परियोजना ने ठीक संकलित किया।
मिहाइ 71

17

R.java फ़ाइल में xml और java पेज के बीच की कड़ी है। "R को हल नहीं किया जा सकता है" केवल तभी उत्पन्न होता है जब आपकी कुछ संसाधन फ़ाइलों में कोई समस्या हो। तो सबसे अच्छा और प्रभावी तरीका अंतिम फ़ाइल को हटा दिया गया है या रेस फाइल में ड्रा करने योग्य है। और फिर फिर से वहाँ से Android कोडिंग मानदंडों के अनुसार शुरू करें। यही एकमात्र रास्ता है। प्रभावी और सही तरीका।

कोड के उचित ट्रैकिंग के लिए Git का भी उपयोग करें। ..


मेरे मामले में एक्सएमएल में न केवल समस्याएं थीं, बल्कि पीएनजी (ड्रॉबल में) भी थीं।
कूलमाइंड

15

आपका कोड सिर्फ तराशा हुआ है। उत्तर काफी सरल है।

बस बिल्ड -> क्लीन प्रोजेक्ट पर जाएं

यह ट्रिक काम आना चाहिए।

एंड्रॉइड स्टूडियो के अपने संस्करण की भी जांच करें।

मैं वर्तमान में एंड्रॉइड स्टूडियो 3.0.1 का उपयोग कर रहा हूं


14

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


मेरा मानना ​​है कि वहां सब कुछ अप टू डेट है। कि वास्तव में इस तरह एक समस्या पैदा कर सकता है?
ez4nick

यदि आपके पास नया SDK निर्मित उपकरण स्थापित नहीं है, तो हाँ।
इन्वर्टिगो

12

बस अपने प्रोजेक्ट को साफ करें और ग्रेड फ़ाइल के साथ सिंक प्रोजेक्ट।यहां छवि विवरण दर्ज करें

और समस्या का समाधान किया जाएगा।


यह ध्यान दिया जाना चाहिए कि "ऐप" पर राइट क्लिक करने और मेनू में सिंक्रोनाइज़ बटन पर क्लिक करने से यह हासिल नहीं होता है। धन्यवाद।
Mafro34 20

11

मेरे पास यह था

  1. मेरे आकर्षित करने योग्य संसाधनों में एक बड़ा अक्षर।
  2. Android Studio (या ग्रहण) द्वारा Android को आयात किया जा रहा है
  3. Xml फ़ाइल में त्रुटि

मेरे पास समस्या थी क्योंकि मेरी एक XML फ़ाइल में कोई त्रुटि थी। फिर इस मुद्दे को हल कियाBuild->Clean Project
अजायकोड्स

11

मेरे पास हाल ही में यह मुद्दा था और स्वच्छ / निर्माण आदि ने इसे हल नहीं किया। मैंने अनुमान लगाया कि मेरे पास एक मुद्दा कहीं था लेकिन यह सुनिश्चित नहीं था कि इसे कहां देखना है (क्या यह प्रकट में था, संसाधन xml फाइलें आदि?)।

जब कुछ गलत होता है, तो आप यह पता लगा सकते हैं कि कोड विश्लेषण चलाने से यह क्या है।

शीर्ष पर मेनू से चुनें:

विश्लेषण -> कोड का निरीक्षण करें, 'डिफ़ॉल्ट' प्रोफाइल का उपयोग करके पूरी परियोजना को स्कैन करें।

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

मेरा सटीक मुद्दा इसलिए था क्योंकि मैं स्वाद आधारित मैनिफ़ेस्ट फ़ाइलों का उपयोग कर रहा था और मैंने <application>गलती से स्वाद में टैग के अंदर कुछ अनुमतियों की प्रतिलिपि बना ली थी।

निरीक्षण

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


दिलचस्प बात यह है कि, मेरे पास यह मुद्दा सिर्फ एक फाइल पर था और "इंस्पेक्ट कोड" प्रक्रिया को चलाया और यह खुद ही साफ हो गया (स्वच्छ और पुनर्निर्माण ने इसे ठीक नहीं किया)। लिंट में कुछ फंस गया होगा कि केवल यह स्पष्ट हो सकता है। धन्यवाद!
रंदविद्रुण

इसके लिए शुक्रिया! जबकि इसमें कई सामान्य त्रुटियां पाई गईं, जो कि अपेक्षित थी, जो टुकड़ा पूरे महल को नीचे ले आया, वह एसेट स्टूडियो द्वारा उत्पन्न एक XML फ़ाइल में एक छोटी सी सिंटैक्स त्रुटि थी! एक बार जब मैंने इसे हल कर लिया, तो एक स्वच्छ परियोजना ने मुझे आगे बढ़ने की अनुमति दी।
Bink

10

मुझे अपना Rपैकेज एंड्रॉइड स्टूडियो में आयात करना पड़ा । पूर्व के लिए:import com.example.<package name>.R


1
इससे पहले कि मैं सोचता हूँ मैं यहाँ था। धन्यवाद फिर से
ओहीव्र

1
इसने मेरे लिए काम किया। आपका बहुत बहुत धन्यवाद।
Aquarius_Girl

मेरे पैकेज का नाम वापस लेने के बाद मेरे साथ ऐसा हुआ, लेकिन किसी तरह एंड्रॉइड स्टूडियो ने इसे छोड़ दिया import com.example.old-package-name.R, इसलिए मुझे आयात का नाम बदलना पड़ा।
शुभ

9

यह एक बहुत पुराना सवाल है, लेकिन यह अभी भी बहुत कुछ होता है और यहां वास्तव में व्यापक जवाब नहीं है।

जितनी बार मैं स्वीकार करना चाहता हूं, मुझे यह समस्या हुई है। यह विभिन्न प्रकार के मुद्दों के कारण हो सकता है, जो ज्यादातर आपके प्रोजेक्ट संरचना के साथ क्या करना है, यह अपेक्षित नहीं है। यहां उन सभी समस्याओं की सूची दी गई है, जो मैंने की हैं:

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

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

यह आपके आईडीई में ऐसा नहीं लग सकता है। फ़ाइल ट्री के ऊपर एक ड्रॉप-डाउन है जो आपकी फ़ाइलों को अलग-अलग तरीकों से प्रदर्शित करता है, और यह मेरे सिस्टम पर एंड्रॉइड नामक एक को डिफॉल्ट करता है जो आपकी फ़ाइलों को उनके विभिन्न प्रकारों में तोड़ देता है। प्रोजेक्ट नामक इस तरह की समस्या को ठीक करना आसान है, और यहां तक ​​कि अपने ओएस की फाइल सिस्टम से सीधे भी आसान है, क्योंकि एंड्रॉइड स्टूडियो उन फ़ोल्डरों को ध्वस्त कर देता है जिनमें केवल एक लाइन पर एक और फ़ोल्डर होता है।

खासकर यदि आप कभी भी अपने ऐप का नाम बदलते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि स्रोत ट्री मेन / जावा / कॉम / डोमेन / ऐपनाम अपडेट किया गया है। यह भी सुनिश्चित करें कि आपके AndroidManifest.xml में पैकेज टैग सही है।

यदि आपकी ग्रैडल फ़ाइलों या आपके AndroidManifest.xml में त्रुटियां हैं, तो यह एंड्रॉइड स्टूडियो को आपकी संसाधन फ़ाइलों को ठीक से बनाने से रोक देगा। कभी-कभी एंड्रॉइड स्टूडियो को अपग्रेड करके ग्रेड फ़ाइलों को तोड़ा जा सकता है, खासकर प्री-1.0 संस्करणों से। कभी-कभी ऐसा इसलिए होता है क्योंकि यह ग्रेडल प्लगइन के पुराने संस्करणों का समर्थन करना बंद कर देता है, इसलिए आपको अपने संस्करण संख्याओं को अपडेट करने की आवश्यकता है। कभी-कभी यह पता लगाना मुश्किल हो सकता है कि वर्तमान संस्करण क्या हैं। आज के रूप में, 7/17/15, मेरे ऐप्स के साथ ठीक संकलन कर रहे हैंcom.android.tools.build:gradle:1.2.3 । यह सबसे बाहरी ग्रेडल फ़ाइल में निर्भरता ब्लॉक में है,

यदि आपका AndroidManifest एक गैर-मौजूद ड्रॉबल या स्ट्रिंग संसाधन या गतिविधि को संदर्भित करता है, तो यह टूट जाएगा और इस त्रुटि का कारण होगा। कभी-कभी अगर कोई चीज किसी न किसी ड्रॉबल या स्ट्रिंग संसाधन का संदर्भ देती है तो आपको यह त्रुटि मिलेगी

यदि आपके पास अपने संसाधनों में एक फ़ाइल है जो दूषित है, या एक अमान्य xml फ़ाइल है, तो आपको यह त्रुटि मिलेगी।

मेरे अनुभव में, कभी-कभी एंड्रॉइड स्टूडियो बिना किसी कारण के हिचकी लेता है, और आपको इसे और / या अपने पीसी को पुनरारंभ करने की आवश्यकता है। मुझे पता नहीं क्यों, लेकिन कभी-कभी यह काम करता है।

यदि आपके पास एक ही नाम के साथ दो xml संसाधन हैं, निर्देशिका में जो एक-दूसरे को ओवरराइड नहीं करते हैं, तो आपको यह समस्या हो सकती है। उदाहरण के लिए, आप ड्रा करने योग्य- mhdpi और drawable-xhdpi में एक ही नाम रख सकते हैं क्योंकि वे लक्ष्य डिवाइस के आधार पर एक-दूसरे को ओवरराइड करते हैं, लेकिन यदि लेआउट और मेनू में आपका एक ही नाम है, तो यह एक समस्या पैदा करेगा। फ़ाइलों में से किसी एक का नाम बदलें या हटाएं।

यदि केवल कुछ संसाधनों में यह समस्या हो रही है, तो उन संसाधनों की गलत निर्देशिका में सबसे अधिक संभावना है।

एक मामले में मुझे एंड्रॉइड स्टूडियो को पूरी तरह से पुनर्स्थापित करना पड़ा। मुझे नहीं पता कि क्या गलत था, लेकिन यह काम किया।

एक मामले में मैंने अपनी पूरी परियोजना को एक अलग निर्देशिका में स्थानांतरित कर दिया और इसे एक नई परियोजना के रूप में फिर से आयात किया। मुझे नहीं पता कि क्या गलत था, लेकिन यह काम किया।

नामों के लिए आरक्षित शब्दों वाली Xml फाइलें इस समस्या का कारण बन सकती हैं। उनका नाम बदलें या हटाएं।

कुछ तरीके हैं जो आपकी ग्रेडल फ़ाइल बिल्ड-टूल्स के एक संस्करण को संदर्भित कर सकते हैं जो आपने स्थापित नहीं किया है। ग्रैडल को बदलकर या उपयुक्त बिल्ड-टूल्स डाउनलोड करके इसे ठीक करें।

अंत में, आपके द्वारा जो कुछ भी गलत है, उसे ठीक करने के बाद, आपको अपनी ग्रेडल परियोजना को साफ करने की आवश्यकता है। आप शीर्ष पर बिल्ड मेनू पर जाकर और स्वच्छ परियोजना का चयन करके ऐसा करते हैं।


9

बस Android शीर्ष मेनू सूची पर जाएं। बिल्ड मेन्यू पर क्लिक करें, बिल्ट इन रीबिल्ड प्रोजेक्ट पर क्लिक करें

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


9

मुझे इस समस्या का सामना करना पड़ा जब मैंने मैन्युअल रूप से अपने ऐप के डोमेन फ़ोल्डर का नाम बदल दिया। इस मुद्दे को ठीक करने के लिए, मुझे करना पड़ा

  1. उचित सेट packageकी फ़ोल्डर संरचना <manifest>मेंAndroidManifest.xml
  2. के लिए नए पैकेज का स्थान सेट android:nameकी <activity>मेंAndroidManifest.xml
  3. कै से साफ करें

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

एक बार जब एंड्रॉइड स्टूडियो फिर से शुरू होता है और नए सूचकांक का निर्माण करता है, तो यह समस्या दूर हो जाएगी।


9

मेरे पास एक ही मुद्दा था: एंड्रॉइड स्टूडियो 3.2 परियोजना संकलित करती है और ठीक चलती है, लेकिन मुझे "स्क्रीन पर" आर "प्रतीक को हल नहीं कर सकता है"

मदद नहीं करता है :

  • बिल्ड-> क्लीन प्रोजेक्ट
  • बिल्ड-> पुनर्निर्माण परियोजना
  • फ़ाइल-> अमान्य कैश / पुनरारंभ करें

मदद करता है:

भी

in build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
...
}

से बदलो

   dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
    ...
    }

या

एंड्रॉइड स्टूडियो को 3.3 पर अपडेट करें


तुमने मेरी जान बचाई ! एंड्रॉइड स्टूडियो को 3.4 पर अपडेट करने से मेरे लिए समस्या हल हो गई
आर्टरी

8

इस समस्या के लिए मेरे पास एक विशेष मामला है।

मेरी परियोजना में, हर चीज अच्छी तरह से चलती है, यह सफलतापूर्वक संकलन और निर्माण कर सकती है, लेकिन मेरे एंड्रॉइड स्टूडियो आईडीई में (और मैंने इंटेलिजेंट आईडीईए की भी कोशिश की, वे उसी स्थिति में हैं) आर.जवा फाइल को अच्छी तरह से हल नहीं किया जा सकता है और हमेशा होना चाहिए लाल रेखा में गिरा।

सिर्फ इस तरह: यहां छवि विवरण दर्ज करें

यह लगभग मुझे पागल कर दिया, जब मैं प्रोग्राम कर रहा हूं तो मैं पढ़े गए रंग को सहन नहीं कर सकता।

अंत में मैंने पाया कि यह मुश्किल समस्या मेरे R.java के फ़ाइल आकार के कारण है। मेरा प्रोजेक्ट बहुत विशाल है, यह कई बहु-भाषाओं और मल्टी स्क्रीन आकारों का समर्थन करता है। इतने सारे संसाधन हैं कि मेरे R.java की फ़ाइल का आकार लगभग 2.5M है

एंड्रॉइड स्टूडियो में एक फ़ाइल का अधिकतम आकार डिफ़ॉल्ट सेटिंग्स में 2.5M है, इसलिए इस सीमा से बड़ी फ़ाइलों को अच्छी तरह से हल नहीं किया जा सकता है। और आप "AndroidStudio-root / bin / idea.properties" में डिफ़ॉल्ट सेटिंग्स बदल सकते हैं।

इस पंक्ति को बदलें:

idea.max.intellisense.filesize=2500

सेवा :

idea.max.intellisense.filesize=5000

फिर एंड्रॉइड स्टूडियो को पुनरारंभ करें, लाल रंग को खारिज कर दिया, मैं फिर से खुशी से प्रोग्राम कर सकता हूं।


एंड्रॉइड 3.2 में सिर्फ
बेटो

अच्छी टिप, लेकिन यह मेरे हल नहीं कर सका हल नहीं कर सकता प्रतीक आर
एलिटोन ओलिवेरा

7

बिल्ड> क्लीन प्रोजेक्ट

इसने मेरे लिए काम किया। एक ही समस्या कुछ समय था, और यह सही सेट करने के लिए लगता है। जब तक आप कुछ बदल गए हैं या एक चर आर कहा जाता है। यह मुद्दा आम तौर पर कहीं से भी होता है, जब मेरे साथ ऐसा होता है, तो मैं इसकी सिर्फ एंड्रॉइड स्टूडियो की कल्पना करता हूं। haha

अपनी परियोजनाओं के साथ एक अच्छी और अच्छी किस्मत रखें।


धन्यवाद। इसने मेरे लिए भी काम किया। मैंने ड्रॉबल में कुछ छवियों को बदल दिया है और मुझे वह त्रुटि मिली है।
केसीपी

7

करो: बिल्ड> क्लीन प्रोजेक्ट

महत्वपूर्ण: संदेश फलक (Alt + 0) में क्लीन प्रोजेक्ट के बाद सुनिश्चित करें कि आपके पास कोई त्रुटि नहीं है। यदि आपको विस्मयादिबोधक चिह्न के साथ कोई लाल वृत्त मिलता है, तो आपको अपने कोड में उन त्रुटियों को दूर करना होगा।

अधिकतर ये त्रुटियां @ स्ट्रिंग / या @ सरणी / से संबंधित हैं। स्वच्छ परियोजना फिर से और किया!


7

मुझे एक ही समस्या थी, और यह तब होता है जब मैं एक नई परियोजना बनाता हूं।

मैं क्या कर रहा हूँ:

  • एसडीके अपडेट के लिए जाँच करें
  • तब Android स्टूडियो अपडेट,
  • फिर परियोजना को फिर से खोलें
  • andoridmanifest.xml खोलें
  • एंड्रॉइड में "_>" के बीच एक स्थान मिटाएं: लेबल करें और सहेजें।

ये मेरे लिए सही है।


7

मेरे पास खुद को ठीक करने का कठिन समय था।

  • सुनिश्चित करें कि आपके लेआउट में कोई त्रुटि नहीं है। xml फ़ाइलें।
  • पर जाएं बिल्ड> स्वच्छ परियोजना

इसने मेरे लिए काम किया, आशा है कि यह आपके लिए भी काम करेगा।


6

मेरे पास एक ही समस्या थी और ज्यादातर बार इसका समाधान किया जाता है

  • सिंक फ़ाइलों के साथ प्रोजेक्ट सिंक करें
  • डूइंग बिल्ड -> क्लीन प्रोजेक्ट
  • फाइल करना -> अमान्य कैश

लेकिन इस बार इन सभी चीजों को करने के बाद भी त्रुटि बनी रही और आखिरकार मुझे दोषी पाया गया।

समस्या एक xml फ़ाइल में थी , जहाँ मैंने id संसाधन प्रकार केandroid:id बजाय साधारण स्ट्रिंग मान दिया है ।

गलती

android:id="username"

भूल सुधार

android:id="@id/username"

resourcesXml फ़ाइलों से संबंधित चीजों को गड़बड़ करना इस त्रुटि का एक प्रमुख कारण है। इस तथ्य से सावधान रहें कि इसे xml लेआउट फ़ाइल में त्रुटि के रूप में नहीं दिखाया जा सकता है।

ध्यान दें

अधिकांश मामलों में कंपाइलर आपको संदेश में त्रुटि का स्रोत दिखाता है। अन्य समाधानों का प्रयास करने से पहले इसे पहले जांचने की कोशिश करें


6

`मेरे पास एक ही समस्या थी और इसे हल किया:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`

यह एक अच्छा जवाब है, हालांकि मुझे केवल in // ’को ग्रेड फ़ाइल में जगह देने और रेसक्यू का चयन करने की आवश्यकता थी। फिर सभी एएस ने आयात को मान्यता दी और मुझे ऐप चलाने की अनुमति दी।
वैल

5

यह अंकन ठीक काम करने लगता है।

android:id="@+id/viewID"

Android Studio का डिज़ाइन पैनल अच्छा काम नहीं करता है।


5

एक ही समस्या है। जब मैंने अपने ड्रॉ करने योग्य फ़ोल्डर में कुछ छवियां जोड़ीं और उन्हें एक्सेस करने का प्रयास किया तो शुरू किया। इसके अलावा जोड़े गए चित्रों में कैपिटल अक्षरों के साथ एक्सटेंशन था। ऐसा लगता है कि निर्माण दुर्घटनाग्रस्त हो गया था, तब भी जब मैंने उनका नाम बदला, संदेश समान था और आर दुर्गम था। मैंने जो भी किया है .iml फ़ाइल में मैंने बहिष्कृत फ़ोल्डर की तलाश की और उन्हें हटा दिया (जैसे bellow):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

उसके बाद मैंने प्रोजेक्ट का पुनर्निर्माण किया और आर जादुई रूप से फिर से दिखाई दिया।


5

इस त्रुटि के कई कारण हैं।

  1. कभी-कभी यह एक ही नाम रखते हुए एक छवि फ़ाइल को बदलने के लिए होता है।
  2. मान लीजिए कि आपने अपने लेआउट से एक आइटम हटा दिया है .xml कहते हैं, <Button/>लेकिन यह अभी भी किसी भी गतिविधि या Fragment .java में घोषित किया गया है।
  3. बहुत सारी।

त्रुटि को ट्रैक करने का सबसे अच्छा तरीका यह है कि इसे साफ करें या कुछ जानबूझकर त्रुटि करते हुए सिंक करें।

यदि यह आपकी समस्या को हल नहीं करता है, तो कुछ दोष या रनटाइम त्रुटि होनी चाहिए या संसाधनों के अनुचित उपयोग के कारण त्रुटि हुई हो सकती है, आपके कोड या डिज़ाइन में जावा या xml फ़ाइल दोनों हो सकते हैं जो रोकने के लिए मजबूर कर रहा है क्योंकि (आर) ) esource फ़ाइल आपके संसाधनों को ठीक से अनुक्रमणित नहीं कर सकती है और आपको यह स्वीकार करना होगा।

यदि आपका प्रोजेक्ट आपके द्वारा किए गए परिवर्तनों से पहले भाग गया है तो आपके द्वारा किए गए परिवर्तनों पर टिप्पणी करें और प्रोजेक्ट को फिर से बनाने का प्रयास करें।

यह निश्चित रूप से काम करेगा क्योंकि कोई बदलाव नहीं होगा।

सटीक त्रुटि को ट्रैक करने के लिए, छोटे मॉड्यूल में परिवर्तनों को तोड़कर परिवर्तनों की जांच करें।

उदाहरण के लिए - यदि आप एडॉप्टर में बटन क्लिक और इंसर्ट लिस्ट मान डालते हुए सूची बना रहे हैं, तो पहले यह जाँच लें कि क्या आप इसे दृश्यमान बनाने में सक्षम हैं या नहीं तो एडॉप्टर की त्रुटियों की जाँच करें।


4

यह मेरे लिए बड़ा सिरदर्द था। मेरे मामले में एंड्रॉइड स्टूडियो में "Google Play सेवाएं" कॉन्फ़िगर करने के बाद त्रुटि दिखाई दी (इंस्टॉलिंग + बिल्ड.ग्रेडल कॉन्फ़िगरेशन)। इसके बदले में minsdk> 7 की आवश्यकता होती है, लेकिन त्रुटि इसके बारे में बहुत अस्पष्ट है (वास्तव में इस बारे में एक शिकायत केवल "जानकारी" के रूप में प्रकट होती है)। किसी भी तरह .. प्रकट फ़ाइल और build.gradle फ़ाइल और परियोजना के पुनर्निर्माण दोनों में minsdk को 8 में बदलने पर त्रुटि हो गई थी।

तो .. इस बारे में एक सामान्य सलाह, अगर मैं सामान्य कर सकता हूं - आपको शायद आपके मैनिफ़ेस्ट फ़ाइल में कुछ समस्या है, या कुछ अन्य कॉन्फ़िगरेशन फ़ाइल है, जो एक उचित बिल्ड को रोक रही है। त्रुटि रिपोर्ट पर वास्तव में कठिन दिखने की कोशिश करें, यहां तक ​​कि किसी भी संकेत के लिए "जानकारी" शीर्षक वाले संदेश यह क्या हो सकता है ...

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