यह एक बहुत पुराना सवाल है, लेकिन यह अभी भी बहुत कुछ होता है और यहां वास्तव में व्यापक जवाब नहीं है।
जितनी बार मैं स्वीकार करना चाहता हूं, मुझे यह समस्या हुई है। यह विभिन्न प्रकार के मुद्दों के कारण हो सकता है, जो ज्यादातर आपके प्रोजेक्ट संरचना के साथ क्या करना है, यह अपेक्षित नहीं है। यहां उन सभी समस्याओं की सूची दी गई है, जो मैंने की हैं:
ग्रहण से एंड्रॉइड स्टूडियो में आयात करना हमेशा सुचारू रूप से काम नहीं करता है, खासकर एंड्रॉइड स्टूडियो के पुराने संस्करणों के साथ। सुनिश्चित करें कि आप सही निर्देशिका ट्री का उपयोग कर रहे हैं। यह एक मामूली परिपक्व अनुप्रयोग के लिए इस तरह दिखना चाहिए:
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 फाइलें इस समस्या का कारण बन सकती हैं। उनका नाम बदलें या हटाएं।
कुछ तरीके हैं जो आपकी ग्रेडल फ़ाइल बिल्ड-टूल्स के एक संस्करण को संदर्भित कर सकते हैं जो आपने स्थापित नहीं किया है। ग्रैडल को बदलकर या उपयुक्त बिल्ड-टूल्स डाउनलोड करके इसे ठीक करें।
अंत में, आपके द्वारा जो कुछ भी गलत है, उसे ठीक करने के बाद, आपको अपनी ग्रेडल परियोजना को साफ करने की आवश्यकता है। आप शीर्ष पर बिल्ड मेनू पर जाकर और स्वच्छ परियोजना का चयन करके ऐसा करते हैं।