हालांकि उत्तर देने में देर हो गई, यह Google (एकल उद्धरण) के लिए एक कठिन है और यह स्पष्ट नहीं है कि क्या हो रहा है। मेरे पास अभी तक टिप्पणी करने या स्कोप (या 3 लिंक पोस्ट) करने के लिए प्रतिष्ठा नहीं है, इसलिए यह उत्तर थोड़ा थकाऊ हो सकता है।
तेजी से उत्तर देने के लिए, आपके पास अपने प्रोजेक्ट में एकाधिक ग्रेडल प्लग इन हो सकते हैं।
ग्रेडल रैपर और प्लगइन्स को सिंक्रोनाइज़ करें
मेरा मुद्दा एक भ्रष्ट IML फ़ाइल के साथ शुरू होता है। Android Studio (किसी प्रोजेक्ट को बंद करने और फिर से खोलने के बीच) शिकायत करने लगा कि एक IML चला गया है (यह नहीं था) और एक मॉड्यूल को हटा दिया जाना चाहिए, जिसे मैंने अस्वीकार कर दिया। यह जारी रहा, मैं 0.8.7 (कैनरी चैनल) में अपग्रेड हुआ और ओपी मुद्दे (टास्क '' रूट प्रोजेक्ट में नहीं मिला) पर अटक गया। यह पूरी तरह से अवरुद्ध बनाता है इसलिए मुझे ग्रैडल में खुदाई करनी पड़ी।
OSX पर मेरी मरम्मत के कदम (कृपया विंडोज़ के लिए समायोजित करें):
- एंड्रॉइड स्टूडियो को 0.8.7 पर अपग्रेड करें
- प्राथमिकताएँ | अपडेट | "बीटा चैनल" को "कैनरी चैनल" पर स्विच करें, फिर एक चेक नाउ करें।
- आप इसे छोड़ सकते हैं।
ग्रेडल रैपर की जाँच की गई (वर्तमान में 1.12.2; इस समय 2.0 का उपयोग करने की कोशिश न करें)।
यह मानते हुए कि आपको किसी विशेष संस्करण की आवश्यकता नहीं है, नवीनतम समर्थित वितरण का उपयोग करें
$ vi ~/project/gradle-wrapper.properties
...
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
यह Preferences में Android Studio में सेट किया जा सकता है | ग्रेडल (लेकिन 0.8.7 मुझे 'अमान्य स्थान' त्रुटियां दे रहा था)।
- 'रैपर' प्रत्येक एंड्रॉइड स्टूडियो प्रोजेक्ट के लिए ग्रेडेल की एक प्रति है। यह आपको अपने ओएस में ग्रैडल 2, और अपनी परियोजनाओं में विभिन्न संस्करणों की अनुमति देता है। Android डेवलपर डॉक्स यहां समझाते हैं ।
- फिर प्लगइन के लिए अपनी build.gradle फ़ाइलों को समायोजित करें । ग्रैडल प्लगइन संस्करण पूरे प्रोजेक्ट के लिए वितरण / आवरण संस्करण के साथ संगत होना चाहिए। चूंकि टूल डॉक्यूमेंटेशन (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) थोड़ा पुराना है, आप प्लगइन संस्करण को बहुत कम सेट कर सकते हैं (जैसे 0.8.0) एंड्रॉइड स्टूडियो रैपर के लिए स्वीकार्य सीमा के साथ एक त्रुटि फेंक देगा।
उदाहरण में, build.gradle में, आपके पास यह प्लगइन है:
dependencies {
classpath "com.android.tools.build:gradle:0.12.+"
}
आप इसे इस तरह सटीक संस्करण में बदलने का प्रयास कर सकते हैं:
dependencies {
classpath "com.android.tools.build:gradle:0.12.2"
}
और (प्रत्येक मामले में आप किस संस्करण से बदल रहे हैं, यह रिकॉर्ड करने के बाद) सत्यापित करें कि आपके प्रोजेक्ट की प्रत्येक बिल्ड.ग्रेड फ़ाइल उसी प्लगइन संस्करण में खींचती है। "+" को काम करना चाहिए (0.12.0, 0.12.1, 0.12.2, आदि के लिए), लेकिन मेरा निर्माण तब सफल हुआ जब मैंने Google की वॉली लाइब्रेरी (मूल रूप से ढाल: 0.8 +) और मेरे मुख्य प्रोजेक्ट (मूल रूप से 0.12) को अपडेट किया। +) निश्चित संस्करण के लिए: ढाल: 0.12.2।
अन्य जाँच
सुनिश्चित करें कि आपके पास एक ही प्रोजेक्ट में दो Android एप्लिकेशन मॉड्यूल नहीं हैं
यह अंतिम समाधान (विभिन्न ग्रेड संस्करण, ऊपर), और कारण के साथ बातचीत कर सकता है
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
जांच करने के लिए, बिल्ड | Make Project को एक विंडो पॉप अप नहीं करना चाहिए, जिससे पूछा जाए कि आप क्या एप्लिकेशन बनाना चाहते हैं।
- अपने कैश को अमान्य करें
- फ़ाइल | अमान्य कैश / पुनः आरंभ करें (stackoverflow.com/a/19223269/513413)
- यदि चरण 2 काम नहीं करता है, तो ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/) हटाएं
- Android Studio से बाहर निकलें
- $ rm -rf ~ / .gradle /
- Android Studio प्रारंभ करें, फिर सिंक करें:
- उपकरण | Android | ग्रैडल फाइलों के साथ सिंक प्रोजेक्ट
- इस पूरे अनुक्रम को छोड़ दें (छोड़ दें ... सिंक) देने से पहले कुछ बार।
- प्रोजेक्ट को साफ करें
- निर्माण | स्वच्छ परियोजना
यदि आप इसे देखें ...
अपने हाल के बिल्डरों में, मैं भयानक विफलताओं (अपवादों के पृष्ठ) को देखता रहा, लेकिन सेकंड के भीतर संदेश स्पष्ट हो जाते थे, बिल्ड सफल हो जाता था और ऐप तैनात हो जाता था। चूंकि मैं इसे कभी समझा नहीं सका और ऐप ने काम किया, इसलिए मैंने कभी नहीं देखा कि मेरे प्रोजेक्ट में दो ग्रैगल प्लग हैं। तो मुझे लगता है कि ग्रेडल प्लगइन्स एक-दूसरे से लड़े थे; एक दुर्घटनाग्रस्त हो गया, दूसरे ने अपना राज्य खो दिया और त्रुटि की सूचना दी।
यदि आपके पास समय है, तो 1-घंटे का वीडियो "ए जेंटल इंट्रोडक्शन टू ग्रैडल" (www.youtube.com/watch?v=OFUEb7pLLXw) ने ग्रैड बिल्ड फाइल, टास्क, निर्णय लेने, निर्णय लेने आदि के लिए वास्तव में मेरी मदद की।
अस्वीकरण
मैं इस पूरे स्टैक को विदेशी ओएस पर सीख रहा हूं, एक अलग करियर बनाने के बाद ... सभी एक ही समय में और दबाव में। पिछले कुछ महीनों में मुझे लगता है कि हर दीवार पर मुझे लगता है कि एंड्रॉइड है; मैं यहां काफी बार आया हूं और यह मेरी पहली पोस्ट है। मुझे लगा कि यह एक कठिन फिक्स था, इसलिए मैं ईमानदारी से माफी मांगता हूं अगर मेरे उत्तर की गुणवत्ता उस कठिनाई को दर्शाती है जो मुझे इसे प्राप्त करने में थी।