R को हल नहीं किया जा सकता - Android त्रुटि


1071

मैंने अभी नया एंड्रॉइड एसडीके डाउनलोड और इंस्टॉल किया है। मैं इसे टेस्ट करने के लिए एक साधारण एप्लिकेशन बनाना चाहता था।

विज़ार्ड ने यह कोड बनाया:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

लेकिन ग्रहण मुझे त्रुटि देता है

R हल नहीं किया जा सकता

लाइन पर

setContentView(R.layout.main);

क्यों?

पुनश्च: मैं एक एक्सएमएल फ़ाइल का नाम है main.xmlके तहत res/layout/


उन लोगों के लिए जो अभी भी ग्रहण के साथ कुछ समस्या का अनुभव कर रहे हैं। R.java को अपडेट / जनरेट नहीं कर पा रहे हैं। एक संभावित समाधान एक डमी xml बनाकर है और बस उस xml को हटा दें। मेरे मामले में यह समाधान है
बदनाम करना

ईमानदारी से, यह बहुत बेवकूफ लगता है (और यह है), लेकिन AndroidManifest.xml को संशोधित करना, फिर उस संपादन को पूर्ववत करना, फिर फ़ाइल को सहेजना मेरे लिए काम करता है। अगर मैंने उसके बाद प्रोजेक्ट को साफ किया, तो यह फिर से टूट गया। और यह सब समय मैंने सोचा कि Xcode एकमात्र IDE थी जिसमें इस प्रकार की रहस्यमय त्रुटियाँ थीं।
१२

3
क्या आपने प्रोजेक्ट पर राइट क्लिक करने की कोशिश की -> एंड्रॉइड टूल्स -> प्रोजेक्ट सेटिंग्स को ठीक करें?
सर्गेई

6
कृपया अपनी एक्सएमएल लेआउट फ़ाइल की जाँच करें, यदि xml में कोई त्रुटि आप R.java उत्पन्न नहीं कर सकते हैं, और त्रुटि भी bulid और clean के बाद आती है।
स्विफ्टबॉय

1
बस एक टिप: जब मैंने ग्रहण को एंड्रॉइड स्टूडियो से आईडीई पर स्विच किया तो यह मेरे साथ हो रहा बंद हो गया।
माता

जवाबों:


840

इस समस्या को ट्रैक करने के बाद, मुझे यह नोट Android प्रलेखन में मिला:

http://source.android.com/source/using-eclipse.html

* नोट: ग्रहण कभी-कभी आपकी फ़ाइलों के शीर्ष पर "आयात android.R" कथन जोड़ना पसंद करता है जो संसाधनों का उपयोग करते हैं, खासकर जब आप ग्रहण को सॉर्ट करने या अन्यथा आयात का प्रबंधन करने के लिए कहते हैं। इससे आपका मेकअप टूट जाएगा। इन गलत आयात बयानों के लिए बाहर देखो और उन्हें हटा दें। "

एंड्रॉइड सैंपल ट्यूटोरियल के माध्यम से जाने के दौरान, मैं अक्सर "इंपोर्ट को व्यवस्थित करने" के लिए Ctrl+ Shift+ Oकमांड का उपयोग करता हूं और किसी भी लापता आयात स्टेटमेंट को उत्पन्न करता हूं । कभी-कभी यह गलत आयात कथन उत्पन्न करता है जो R.javaआपके द्वारा निर्मित होने पर स्वचालित रूप से उत्पन्न होने वाले वर्ग को छिपा देगा ।


32
यह भी होता है, लेकिन एक पेचीदा लेआउट फ़ाइल भी इसका कारण बन सकती है।
गीगाहर्ट्ज

113
यह क्लासिक बग YEARS के लिए ग्रहण में रहा है और कभी निश्चित नहीं होता है। ज्यादातर लोग इसी समस्या का सामना करते हैं।
कैरोल

52
ग्रहण डेवलपर्स, कृपया इस $ £ और "$ & / बग को हटा दें! Google डेवलपर्स, कृपया मुझे iPhone के लिए Xcode के समान £ $ और $"% और Android सूट दें!
अब्रामोदज

18
@ 2-स्ट्रोक: यह एक बग है। यह मेरे साथ तब हुआ जब मैंने ग्रहण विजर्ड के माध्यम से एक शाखा नई सैद्धांतिक परियोजना बनाई और इसने 'आर हल नहीं किया जा सकता' के बारे में शिकायत की। मुझे setContentView और getMenuInflater लाइनों पर टिप्पणी करनी पड़ी और फिर ग्रहण ने R.java उत्पन्न किया जिसके बाद मैं setContentView और getMenuInflator को अनसुना कर सकता हूं। अब्रामोदज सही है, पर्यावरण की गंभीर समस्या है यदि आपका 'हैलो वर्ल्ड' उदाहरण भी संकलित नहीं करता है। इसे ठीक करें!
CF_Maintainer

5
Google इस तरह की वस्तुओं को प्राप्त करने के लिए eclipse.org फंड कैसे नहीं देता है?
संकट

391

हर बार मुझे R के साथ एक समस्या उत्पन्न हुई थी, या गायब भी नहीं हुई थी, यह XML लेआउट फ़ाइल में कुछ समस्या के कारण था जिसने एप्लिकेशन को निर्मित होने से रोक दिया था।


21
इसके लिए +1। मेरे पास माता-पिता के साथ एक पुरानी स्टाइल थी। xml फ़ाइल = "android: WindowTitleBackground" और यह मेरे निर्माण को तोड़ रहा था और "जेन" से उत्पन्न किसी भी चीज को रोक रहा था। जब मैंने पहली बार प्रोजेक्ट खोला था, तो कंसोल विंडो में वास्तव में त्रुटि को रिपोर्ट नहीं किया गया था।
स्कॉट पर्सिंगर

12
ठीक है, अगर आपने किसी अन्य परियोजना से लेआउट की प्रतिलिपि बनाई है, और इसे प्राप्त कर रहे हैं, तो लापता ड्राबेल्स की तलाश है - जो इसे तुरंत ठीक कर देगा!
गाबोर

4
मुझे लगता है मैं एक ही समस्या है, वहाँ किसी भी लेआउट डायन पता करने के लिए कोई रास्ता नहीं है?
सेर्गेई कुचर

3
हां, मुझे एक आकर्षित करने योग्य फ़ाइल याद आ रही थी और जिसने R फाइल को उत्पन्न होने से भी रोक दिया था। अजीब बात यह है कि मैं एक मेनू संसाधन में एक android:icon="@drawable/XXX"घोषणा पर <item>था, लेकिन कोई भी लाल स्क्वीगल संकेत नहीं था कि ड्रॉबल संसाधन XXX नहीं मिला था। अन्य उदाहरणों में, "@drawable/YYY" किया गया था जब YYY नहीं मिला था चिह्नित किये, लेकिन इस मामले में नहीं। किसी कारण के लिए।
टेलर

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

201

जब भी मिले

R हल नहीं किया जा सकता

फिर /resनिर्देशिका के लिए जाँच करें और कुछ फ़ाइल होनी चाहिए जिसमें कुछ त्रुटि हो और जो एप्लिकेशन को निर्मित होने से रोक रही है। उदाहरण के लिए, यह एक लेआउट फ़ाइल हो सकती है या यह किसी लापता संसाधन के कारण हो सकता है, लेकिन आपने इसे पहले से ही XML फ़ाइल में परिभाषित किया है।

यदि आपके पास res / drawables-mdpi जैसे फ़ोल्डर में अप्रयुक्त (!) या अप्रतिबंधित (!) चित्र हैं, जो फ़ाइल नामकरण सम्मेलनों का अनुपालन नहीं करते हैं (केवल [a-z0-9_] हो सकते हैं),। R.java वर्ग उत्पन्न नहीं हो सकता है, जिसके कारण घटनाओं की श्रृंखला अन्य सभी पदों को संदर्भित करती है। आशा है ये मदद करेगा!


मुझे नमूना ApiDemos के साथ यह समस्या थी। Strings.xml फ़ाइल में कुछ लापता संसाधन। एक्सएमएल त्रुटि को एक्लिप्स के कंसोल में सूचीबद्ध किया गया है।
लेमोटिडिट

धन्यवाद! यह मेरा मुद्दा था, मेरे पास एक लेआउट था जो कि गलत कर रहा था लेकिन इसके बारे में कोई संदेश नहीं था।

29
आप त्रुटियों की जांच कैसे कर सकते हैं? निर्माण / दौड़ते समय मुझे अपने कंसोल में कुछ भी नहीं मिलता है
विंसेंट

4
कैसे पता करें कि WHICH xml फ़ाइल त्रुटि का कारण है? ग्रहण उन्हें चिह्नित नहीं करता है!
यार

1
मेरे पास एचडीपीआई फ़ोल्डर में एक ही नाम के साथ 2 छवियां थीं (1 पीएनजी के साथ और 1 jpg प्रारूप के साथ) उनमें से 1 को हटाकर इस मुद्दे को हल किया गया
हसीब जादौन

134

मेरी परियोजना में r.java.at शुरुआत है, R.layout.main काम अच्छा है। लेकिन, कुछ कोड जोड़ने के बाद यह काम नहीं करता है, और त्रुटि R.layout.main हल नहीं हो सकती है। समस्या क्या है ?

अपने आयात को देखो। संभावना है कि लाइन:

import android.R;

वहाँ पहुँच जाएगा। यदि ऐसा है, तो इसे हटा दें, ताकि आपका प्रोजेक्ट R को डिफ़ॉल्ट एंड्रॉइड रिसोर्स क्लास के साथ नहीं, बल्कि आपके / Res / फ़ोल्डर से एक ऑटो-जनरेट के साथ हल करेगा।


5
धन्यवाद @ दिमितार, जिसने मेरा मुद्दा तय किया! ऐसा लगता है कि ग्रहण और ऑटो-आयात सुविधा ने मुझे उस आयात लाइन को स्वचालित रूप से जोड़ दिया है।
स्टीवन

7
जब मैं बड़े अक्षरों का उपयोग करते हुए लेआउट का नाम रखता हूं, तो मेरे पास भी ऐसे ही मुद्दे हैं
ट्रैविस

यह उन शीर्ष 5 कारणों में से एक है जिसके कारण लोगों को "आर नहीं मिला"। मैंने छवियों के साथ एक समस्या / समाधान पृष्ठ संकलित किया है जो नीचे दिए गए लिंक पर मुख्य 5 दिखाता है। सच में आशा है कि सूची लोगों की मदद करती है क्योंकि यह एक आम समस्या है। spragucm.wordpress.com/2014/05/13/…
क्रिस स्प्रैग

R को हटाने के बाद, कुछ स्थानों पर R का उपयोग कक्षा के रूप में किया जाता है और अब त्रुटि दे रहा है, इसे कैसे हल करें?
नरेंद्र जग्गी

96

और एक और बात जो इस समस्या का कारण बन सकती है:

मैंने नया ADT (v। 22) स्थापित किया। इसने genफ़ोल्डर बनाना बंद कर दिया जिसमें शामिल हैं R.java। समाधान यह था कि Android SDK प्रबंधक से नए Android SDK बिल्ड टूल भी इंस्टॉल किए जाएं।

समाधान यहाँ पाया गया


खुद भी। और जब मैंने एसडीके प्रबंधक, लो और निहारना का चयन किया, तो निर्माण उपकरण स्थापित करने के लिए ऑटो-चेक दिखाता है, एक नोट के साथ कि यह स्थापित नहीं था! क्या देता है???
डेविड हॉटस्पॉट ऑफिस में

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

5
मेरे लिए काम किया, धन्यवाद! यह मेरे मंत्र को पुष्ट करता है: "विकास करते समय कभी भी कुछ भी अपडेट न करें"।
रॉड्रिगो डायस

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

मेरे मामले में यही समस्या थी! आर त्रुटि को ठीक करने, संदर्भों को जोड़ने / हटाने और अन्य विकल्पों को आज़माने के लिए एक दिन बर्बाद कर दिया। मेरा ADT का एक नया नया सेटअप था, और एक नया एंड्रॉइड प्रोजेक्ट निर्माण था, और अभी भी त्रुटि हो रही थी। यह अंत में निकला, मुझे एंड्रॉइड एसडीके टूल्स, एंड्रॉइड एसडीके प्लेटफॉर्म टूल्स और एसडीके बिल्ड टूल्स: पी
सौरभ कुमार

87

R.javaएक फ़ाइल है जो आपके एप्लिकेशन को बनाते समय एंड्रॉइड एक्लिप्स प्लगइन्स बनाता है। R.java"जीन" निर्देशिका के तहत बनाया गया है। यह फ़ाइल "रेस" निर्देशिका में जानकारी से उत्पन्न होती है। यदि आप चयनित मेनू पर "प्रोजेक्ट" -> "क्लीन ..." चलाते हैं, तो यह हटा देगा और फिर R.javaफ़ाइल को पुन: उत्पन्न करेगा ।

समस्या "R को हल नहीं किया जा सकता" तब होता है जब आप AndroidManifest.xmlफ़ाइल में अपना पैकेज का नाम बदलते हैं । यह "जनरल" निर्देशिका के तहत एक उपनिर्देशिका बनाने के लिए आपके एंड्रॉइड पैकेज नाम का उपयोग करता है जहां यह R.javaफ़ाइल संग्रहीत करता है।

ग्रहण को साफ निष्पादित करने में समस्या हो सकती है, क्योंकि यह उलझन में है कि R.javaफ़ाइल कहाँ है जब आपने एंड्रॉइड पैकेज का नाम बदल दिया है। आप genअपने नए पैकेज के नाम से मेल खाने के लिए या तो उपनिर्देशिका का नाम बदल सकते हैं, या आप अपने पैकेज का नाम वापस पुराने नाम में बदल सकते हैं। साफ करें और फिर पैकेज का नाम अपने इच्छित नए नाम में बदलें। यह सबसे अच्छा काम करता है यदि आप पैकेज के नाम को बदलते समय ग्रहण करने से रोकने की कोशिश करते हैं। "प्रोजेक्ट" मेनू के तहत "बिल्ड टू ऑटोमैटिकली" और जब "क्लीन ..." डायलॉग को अनचेक करें तो डायलॉग पूछता है कि क्या इसे "तुरंत निर्माण शुरू करें" बॉक्स को अनचेक करें ताकि आप बदलते समय इसे बनाने की कोशिश न करें। पैकेज का नाम। आपके द्वारा नाम बदलने के बाद आप फिर से "बिल्ड ऑटोमेटिकली" वापस चालू कर सकते हैं।

ध्यान दें कि यदि आपका AndroidManifest.xmlफ़ाइल पैकेज नाम आपके जावा पैकेज के नाम से मेल नहीं खाता है, तो ग्रहण स्वचालित रूप से एक "आयात </ strong> पैकेज>> .R" जोड़ देगा। आपकी सभी .javaफ़ाइलों में पंक्ति जिसमें R का कोई संदर्भ है। यदि आप अपना AndroidManifest.xml पैकेज नाम बदलते हैं , तो कभी-कभी ग्रहण इन सभी आयातों को अद्यतन नहीं करता है। यदि ऐसा होता है, तो अपने जावा पैकेज में से किसी एक में अपने नए पैकेज के नाम में आयात विवरण को बदलने के लिए एक्लिप्स रीफैक्टरिंग ( ALT+ Shift+ R) का उपयोग AndroidManifest.xmlकरें। ऐसा करना सबसे अच्छा है जब आपने "बिल्ड ऑटोमेटिकली" अक्षम कर दिया हो।


21
यह संदर्भ के बिना कट और पेस्ट जैसा दिखता है
केसबैश

1
फाइलों की मल्टीपल कॉपी / पेस्ट और एक ही मुद्दे के लिए नाम रिफैक्टरिंग लीड, सभी फ़ाइल नाम और सामग्री के बावजूद ठीक थे। प्रोजेक्ट को साफ करना, R.java को मैन्युअल रूप से हटाना और सभी आयात हेडर, फिर इन आयात हेडर को फिर से बनाना (अभी भी CTRL + SHIFT + O के साथ) ने ठीक काम किया।
सींगेटबज

इसने मेरे लिए काम किया। मैंने मेनिफेस्ट में पैकेज का नाम बदल दिया था। मुझे उन वर्गों में ctrl-shift-O का उपयोग करना पड़ा जो सही आयात जोड़ने के लिए उत्पन्न आर श्रेणी के मूल्यों को संदर्भित करते थे।
चक क्रट्सिंगर

यह मेरे लिए तय है। अतीत में आयात के मुद्दे को भी देखा है, लेकिन इस बार समस्या यह थी कि पैकेज का नाम प्रकट में पैकेज नाम src फ़ोल्डर में मेल नहीं खा रहा था।
जिम रेंज

मेरे आवेदन में दो गतिविधियाँ थीं। एक के पास एक अलग पैकेज का नाम था जिसे आर के खिलाफ उत्पन्न किया गया था। मुझे आर को मैन्युअल रूप से कुछ का उपयोग करके आयात करना थाimport com.example.main.package.name.R;
ओलिवर मोरन

85

विल ने जो कहा वह सही था

R एक स्वचालित रूप से उत्पन्न वर्ग है जो आपके> संसाधनों की पहचान करने के लिए प्रयुक्त स्थिरांक रखता है। यदि आपके पास R.java फ़ाइल नहीं है (यह 1.5 बिलकुल SDK के साथ ग्रहण करने में जीन / eu.mauriziopz। (> जोसेफ द्वारा अनुशंसित के अनुसार "बिल्ड ऑटोमेटिकली" का चयन करते हुए)। यदि वह एक नई परियोजना बनाने की कोशिश से काम नहीं करता है, अगर समस्या फिर से> यहाँ से फिर से पोस्ट की जाती है और हम और अधिक विस्तार में जाएंगे।

लेकिन मुझे पता चला है कि एक और समस्या थी जो पहले वाले को पैदा कर रही थी। एसडीके निर्देशिका में उपकरणों को निष्पादित करने की अनुमति नहीं थी, इसलिए यह ग्रहण के लिए मौजूद नहीं था, इस प्रकार यह R.javaफ़ाइल का निर्माण नहीं करता था ।

इसलिए अनुमति को संशोधित करने और "बिल्ड ऑटोमैटिकली" का चयन करने से समस्या हल हो गई।


@Jignesh - cd $ANDROID_SDK_ROOT/build-tools/<version>। फिर chmod a+xफ़ाइलों की तरह पर aapt, aidl, dexdump, dx, आदि ANDROID_SDK_ROOTअपने वातावरण में सेट किया जाना चाहिए, और यह आपके एसडीके स्थापना को इंगित करेंगे। उदाहरण के लिए, /opt/android-sdk। दोनों को सेट करना महत्वपूर्ण है ANDROID_SDK_ROOTऔर ANDROID_NDK_ROOTक्योंकि Android उपकरण आंतरिक रूप से उनका उपयोग करते हैं। अनुशंसित NDK निर्देशिका देखें NDK उपयोगकर्ता की सूची में।
jww

@ लुईस .. मैं पहले से ही "बिल्ड ऑटोमैटिकली" का चयन करता हूं लेकिन त्रुटि अभी भी है।
d_unknown

39

आर एक स्वचालित रूप से उत्पन्न वर्ग है जो आपके संसाधनों की पहचान करने के लिए प्रयुक्त स्थिरांक रखता है। यदि आपके पास R.java फ़ाइल नहीं है (यह 1.5 SDK के साथ Eclipse में gen / eu.mauriziopz.gps / R.java होगा) तो मैं आपकी परियोजना को बंद करने या फिर से खोलने या परियोजना के लिए जाने की सलाह दूंगा - सभी का निर्माण करें (और जोसेफ द्वारा अनुशंसित "बिल्ड ऑटोमेटिकली" का चयन करते हुए)। यदि वह एक नई परियोजना बनाने की कोशिश से काम नहीं करता है, अगर समस्या फिर से यहां पोस्ट से फिर से बनाई गई है और हम और अधिक विस्तार में जाएंगे।


8
यह मेरे लिए काम करता है, लेकिन मुझे पहले "प्रोजेक्ट -> क्लीन ..." था।
मैट कॉनॉली

27

सभी फ़ाइलों को बंद करें, प्रोजेक्ट साफ़ करें, ग्रहण को पुनरारंभ करें।


23
+1 लेकिन कभी-कभी इसे 3 ग्रहण पुनः आरंभ करने की आवश्यकता होती है और 7 प्रोजेक्ट बीच में साफ हो जाते हैं। बस कोशिश करते रहें ;-) #rant
मथायस

3
इसे छूने के साथ मिलाएं (संपादित करें + सहेजें) .xml फ़ाइलें (strings.xml ...)।
अली शकीबा

24

में जाँच के लायक है AndroidManifest.xml । विशेषता packageका सही मान है।

अर्थात्:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

आपके द्वारा इसे बदलने के बाद, R.javaइसे फिर से जेनरेट किया जाएगा।


मेरा मूल पैकेज का नाम com.xxxxxdroid.router था। मैंने अपने ऐप com.xxxxxdroid2.router का एक नया संस्करण बनाया। एक बार जब मैंने ऐसा कर लिया था तो मुझे AndroidManifest.xml में पैकेज का नाम अपडेट करना था, लेकिन बहुत बाद में मैंने पुरानी कक्षाओं को कॉपी और पेस्ट करना शुरू कर दिया था। सूचक के लिए धन्यवाद!
यूजीन वैन डेर मेरवे

इसने मेरे मुद्दे को तय किया, मैं एक xml फ़ाइल में काम कर रहा था, खुशी से मुझे याद आया कि कौन सा है, मुझे उनका भार मिला है ... धन्यवाद ...
GHz

19

यह त्रुटि एक नेमस्पेस में एक गतिविधि को जोड़ने के कारण भी हो सकती है जो आपके पैकेज के लिए रूट नेमस्पेस से अलग है।

उदाहरण के लिए, यदि com.example.myappआपके पैकेज के लिए रूट नेमस्पेस है, तो आप com.example.myapp.activitiesनेमस्पेस में एक गतिविधि जोड़ सकते हैं ।

यह "R हल नहीं किया जा सकता" त्रुटि का उत्पादन करेगा।

आयात को ठीक करने के लिए आपकी गतिविधि में डिफ़ॉल्ट नामस्थान में R होना चाहिए:

import com.example.myapp.R;

इससे मुझे मदद मिली, मैंने रूट के नीचे एक पैकेज में अपनी गतिविधियों को स्थानांतरित कर दिया था, रूट पैकेज को आयात के रूप में जोड़ दिया (आयात com.example.myapp.R;) ने समस्या को हल कर दिया।
उत्सुकनाशी

19

पिछले उत्तरों में महान सुझावों के साथ, सुनिश्चित करें कि आपका Android लक्ष्य निर्धारित है:

  1. अपने प्रोजेक्ट पर राइट-क्लिक करें
  2. गुण चुनें
  3. बाएं मेनू में Android चुनें
  4. उपयुक्त प्रोजेक्ट बिल्ड लक्ष्य के आगे एक बॉक्स टिक करें।
  5. अप्लाई पर क्लिक करें और ओके कर दें

संपादित करें: एक साल बाद मुझे एक और कारण मिला। मेरे पास एक .png छवि के समान नाम के साथ मेरे ड्रॉ करने योग्य फ़ोल्डर में एक .jpg छवि थी। मेरे कोड में इस छवि को संदर्भित करने से प्रोग्राम को भ्रमित होना चाहिए और इसने "R को हल नहीं किया जा सकता" त्रुटि दी।


17

सुनिश्चित करें कि आपने Android बिल्ड टूल फॉर्म sdk मैनेजर इंस्टॉल किया है

प्रोजेक्ट राइट क्लिक प्रॉपर्टीज-> जावा बिल्डपैथ लाइब्रेरी चुनें और android-support.jar को इन चरणों का पालन करें।

Project-> Properties-> Java Build Path पर जाएं सिलेक्ट ऑर्डर और एक्सपोर्ट टैब से। Android- समर्थन .jar लाइब्रेरी सेट करें और इसे सूची में सबसे ऊपर रखें। और साफ और पुनर्निर्माण .. यह ज्यादातर मामलों के लिए काम करता है

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


15

मुझे सिर्फ दसवीं बार इस समस्या का सामना करना पड़ा और एहसास हुआ कि यह क्या कारण है: मैंने नाम में अपरकेस अक्षरों के साथ एक XML फ़ाइल बनाई। आपके सभी XML फ़ाइलनामों का /resमिलान होना चाहिए [a-z0-9\\._]


इसके अलावा, मैं सिर्फ देखा ढेर अतिप्रवाह हमें सभी backslashes से बचने की आवश्यकता है।

14

सबसे सरल समाधान - कभी-कभी आपको केवल उस XML फ़ाइल को सहेजने की आवश्यकता होती है जिस पर आप काम कर रहे थे ताकि ऑटोगेनरेटर को किक करने के लिए मिल सके।

फ़ाइल को सहेजें (जैसे main.xml) तो R.java फ़ाइल को हटा दें और देखें कि पुनर्जीवित R.java R रिज़ॉल्यूशन समस्या को हल करता है या नहीं।


सच। कभी-कभी, अगर यह कहता है कि आपके XML में कोई समस्या है (लाल स्क्वैगली लाइन या पीला विस्मयबोधक बिंदु) नहीं है, तो अपमानजनक लाइन को हटा दें, XML फ़ाइल को सहेजें, लाइन को वापस पेस्ट करें और फिर से सहेजें। यदि आप स्वचालित रूप से निर्माण नहीं कर रहे हैं, तो उसके बाद फिर से निर्माण करें, और यह बस काम कर सकता है। ग्रहण कभी-कभी बेवकूफ होता है। :)
hotshot309

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

तो यह सच है: परियोजनाओं की सफाई के बाद R.java चला गया था - स्ट्रिंग्स को संपादित करना और सहेजना। xml ने समस्या को हल किया।
BurninLeo

12

XML फ़ाइल नामों की जाँच करें। सुनिश्चित करें कि वे सभी लोअरकेस में हैं।

यह भी सुनिश्चित करें कि किसी भी छवि संसाधन नाम भी सभी लोअर केस में हैं। मेरे पास मेरी jpg फ़ाइल के नाम पर एक कैपिटल लेटर था, और इसने मेरी परियोजना में आर अनसुलझे त्रुटि का कारण बना।


इसके लिए +1 मेरा मुद्दा था। आपको अपनी छवियों को इस तरह नाम देना होगा: eicon.png नहीं eIcon.png। मैंने कंसॉल को देखकर त्रुटि पाई। यह फ़ाइल पर एक त्रुटि अमान्य फ़ाइल नाम के साथ लौट रहा था: ...
jasonflaherty

12

Rएक उत्पन्न वर्ग है। यदि आप Android विकास उपकरण (ADT) का उपयोग कर रहे हैं, तो यह जब भी प्रोजेक्ट बनाया जाता है, तब उत्पन्न होता है। आपके पास 'बिल्ड ऑटोमेटिकली' बंद हो सकता है।


10

यह त्रुटि मेरे x64 लिनक्स मिंट इंस्टॉलेशन पर क्रॉप हुई। यह पता चला कि परिणाम ADBबाइनरी में एक विफलता थी , क्योंकि ia32-libsपैकेज स्थापित नहीं था। बस चल रहा है apt-get install ia32-libsऔर ग्रहण को स्थानांतरित करने से त्रुटि ठीक हो गई।

यदि आपके x64 डिस्ट्रो में ia32-libs नहीं है, तो आपको मल्टीचर्च जाना होगा।

इस पोस्ट पर # 4 और # 5 की जाँच करें: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

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


यह ध्यान देने योग्य है कि यदि आपके पास 64-बिट लिनक्स इंस्टॉलेशन है तो आपको ia32-lib की आवश्यकता होगी। यदि आपके पास यह नहीं है, तो एडीबी कमांड को निष्पादित करने का प्रयास एक अजीब संदेश के रूप में होगा, यह कहते हुए कि यह फ़ाइल या निर्देशिका नहीं मिल सकती है।
rs_atl

10

आपको SDK टूल को अपडेट / इंस्टॉल करना होगा। एंड्रॉइड एसडीके प्रबंधक को फिर से लॉन्च करें और एक नया आइटम स्थापित करें: एंड्रॉइड एसडीके बिल्ड-tools.one एक हटाएं, जो आपके लिए काम करता है उसे ठीक करें।यहां छवि विवरण दर्ज करें


9

आपको एसडीके टूल को अपडेट करने की आवश्यकता हो सकती है। एंड्रॉइड एसडीके प्रबंधक को फिर से लॉन्च करें और एक नया आइटम स्थापित करें: एंड्रॉइड एसडीके बिल्ड-टूल्स।

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


8

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


6

अपने नए XML लेआउट फ़ाइल नाम को निम्न स्थिति बनाने का प्रयास करें। उदाहरण के लिए, के my_file.xmlबजाय का उपयोग करें myFile.xml


+1 हाँ! सुनिश्चित करें कि यह सही नामकरण परंपराओं का पालन करता है ... [a-z0-9_।]
jasonflaherty

6

फिर भी एक और कारण R.javaआपको स्वतः प्राप्त नहीं हो सकता है यदि आपके पास res / drawable-hdpi , res / drawable-mdpi , या res / drawable-ldpi जैसी निर्देशिकाएं हैं

1.6 + इन निर्देशिकाओं के साथ ठीक लगता है, लेकिन 1.5 उन्हें नहीं चाहता है। जब मैंने उन निर्देशिकाओं को हटा दिया, तो R.javaमेरे लिए फिर से ऑटोगेनरिंग शुरू कर दिया।


6

पहला चेक किसी भी xml लेआउट में कोई त्रुटि है या नहीं, यदि पहले तो इसे हल करें।

अन्यथा परियोजना से जून निर्भरता को हटा दें और परियोजना का पुनर्निर्माण करें।

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


5

अक्सर ऐसा इसलिए होता है क्योंकि प्रोजेक्ट बनाते समय आपके द्वारा दिए गए मिन्सकॉक वर्जन नंबर। उदाहरण:

यदि आप 2.1 को न्यूनतम चाहते हैं, तो Android 2.1 वास्तव में एपीआई स्तर 7 है।

जब आप एसडीके को डाउनलोड और इंस्टॉल करते हैं तो आप देख सकते हैं कि मैं किस बारे में बात कर रहा हूं। उस स्थान पर नेविगेट करें जहां आपने एसडीके को स्थापित किया था ( C:\android-sdk-windowsउदाहरण के लिए) और "प्लेटफार्मों" नाम के फ़ोल्डर को खोलें। आपको "एंड्रॉइड -7" जैसा कुछ फ़ोल्डर के रूप में सूचीबद्ध दिखाई देगा, और यदि आप खोलते हैं कि ए हैsource.properties फ़ाइल है, जो एक पाठ संपादक के साथ खोले जाने पर, आपको संबंधित प्लेटफ़ॉर्म संस्करण दिखाएगा।

जब आप कोई प्रोजेक्ट बनाते हैं, और आपको "बिल्ड टारगेट" एपीआई का चयन करना होगा, तो "एपीआई लेवल" नाम की उस सूची में अंतिम कॉलम उस संख्या को दिखाता है जिसे आप देख रहे हैं जब मिन्सकॉक सेटिंग को पॉप्युलेट करते हैं।

यह शायद सबसे आम गलतियों में से एक है जिसके परिणामस्वरूप R.javaफ़ाइल प्रोजेक्ट> gen> packagename> R.java के तहत नहीं बनाई जा रही है।


5

हटा दें main.out.xml। मैं इसके लिए नया हूं और अभी तक नहीं जानता कि इस फाइल का उपयोग किस लिए किया जाता है, लेकिन इसे हटाने से समस्या दूर हो गई।


5

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

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


4

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


4

मेरे मामले में, मेरे पास एक त्रुटि थी AndroidManifest.xml। अन्य लोगों ने कहा है कि आपकी XML फाइलें त्रुटियों से मुक्त होनी चाहिए, लेकिन मैं केवल Res / फ़ोल्डर में देख रहा था। कई संभावित त्रुटियों को ढूंढें और ठीक करें और समस्या स्वयं हल हो सकती है।


मेरे मामले में यह दोषी था। अगर R.java अभी तक नहीं बनाया गया है, तो मेनिफ़ेस्ट.xml फ़ाइल में कोई भी त्रुटि इस समस्या का कारण बन सकती है।
स्कॉट बिग्स

4

यदि किसी को दिलचस्पी है (मैं यहां आपके जीवन को बचा सकता हूं), मेरे पास त्रुटि थी, R.xmlहल नहीं की जा सकती, जीएलएस परियोजना पर थोड़ा अलग। Hmmmm। अंदर देखने के बाद R.java, मुझे एक ऑटो-जेनरेट किया गया वर्ग मिला XML.java, (मुझे लगता है) वहां नहीं था।

समाधान? इसमें एक नया फ़ोल्डर चाहिए res: res\xmlऔर default_values.xml उसमें एक फ़ाइल । तब सब ठीक था।

बस अगर आपको वह फ़ाइल नहीं मिली है, तो:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.