डेक्स निष्पादित करने में असमर्थ: ग्रहण में जीसी ओवरहेड सीमा पार हो गई


213

जब मैंने Git प्रोजेक्ट OsmAnd डाउनलोड किया और इसे संकलित करने के लिए गया, तो ग्रहण ने इन त्रुटियों को वापस कर दिया:

[Dex Loader] Unable to execute dex: GC overhead limit exceeded
[OsmAnd]     Conversion to Dalvik format failed: 
             Unable to execute dex: GC overhead limit exceeded

गूगल और Stackoverflow कहा कि मैं परिवर्तन करना होगा -Xms40m -Xmx384mमें eclipse.iniDalvik प्रारूप में रूपांतरण विफल रहा: डेक्स निष्पादित करने में असमर्थ: Java हीप स्पेस
मैंने प्रोजेक्ट को साफ किया और ग्रहण को फिर से शुरू किया, लेकिन इससे कोई फायदा नहीं हुआ।

मुझे यह लिंक मिला: Android डेवलपर के लिए सुझाव: "Dalvik प्रारूप में रूपांतरण विफल: dex: null निष्पादित करने में असमर्थ" लेकिन मुझे नहीं पता .jarकि इनपुट को बदलने के लिए मेरी परियोजना से कौन है। यदि कोई मदद कर सकता है, तो मैं इस परियोजना को भेज सकता हूं। उन्हें।

जवाबों:


437

इसे Eclipse.ini में VM मानों को बदलकर ठीक किया जा सकता है। नीचे दिए गए मानों को 512 और 1024 पर सेट करें:

openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m

छवि में बदला हुआ क्षेत्र यहां छवि विवरण दर्ज करें


8
धन्यवाद। मुझे आश्चर्य है कि चूक अभी भी पूरी तरह से अपर्याप्त हैं, मुझे नहीं लगता कि किसी को 512/1024 से कम के साथ ग्रहण चल रहा है - मैं सिर्फ दो बार भी गया था। इसके अलावा, मैं चाहता हूं कि सेटिंग्स को मेरे घर निर्देशिका में कुछ विन्यास फ़ाइल में संग्रहीत किया गया था एक आईआईआई फ़ाइल के बजाय जो हर उन्नयन के साथ ओवरराइट की गई है।
यशिमा

11
क्या आपको --launcher.XXMaxPermSize 512mदो बार की जरूरत है ?
एंड्रयू वाइल्ड

4
इन नंबरों पर क्या सीमाएं हैं? मुझे उन्हें डालने पर कितना विचार करना चाहिए?
3

5
@MuhammadRiyaz यह आपके OS पर निर्भर करता है और आप 32-बिट या 64-बिट JVM का उपयोग कर रहे हैं या नहीं। यदि आप 64 बिट जेवीएम पर हैं, तो आप इसे ओएस / अन्य अनुप्रयोगों के लिए अपने रैम आकार के माइनस ओवरहेड की तुलना में कुछ भी सुरक्षित रूप से सेट कर सकते हैं। 32 बिट VM पर, आप इसे लगभग 1500M (लिनक्स पर) या 1100M (विंडोज पर) से छोटा रखना चाहेंगे क्योंकि VM को सन्निहित पता स्थान आवंटित करने की आवश्यकता है, और यह 32-बिट ऐप्स के लिए एक बहुत ही सीमित संसाधन है।
जूल्स

4
-XX: MaxPermSize = 1024m -Xms1024m -Xmx2048m ने मदद की
kreker


7

eclipse.ini इस तरह दिखते हैं।

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
-Xmx1024m

5

एंड्रॉइड एक्सएमएल के कारण होने वाली इस समस्या को मान लें, क्योंकि बहुत बार आप इसे खोल रहे हैं

StackOverFlow पर इन दो मुद्दों को एक दूसरे के साथ साकार किया जाता है:

जब भी मैं ग्रहण में Android XML फ़ाइल पर क्लिक करता हूं, यह सभी API संस्करणों के लिए डेटा लोड करती है

तथा

डेक्स निष्पादित करने में असमर्थ: जीसी ओवरहेड सीमा पार हो गई

मुझे इस समस्या को हल करने के लिए एक और समाधान मिला, जो VM मानों को बढ़ाकर या पुराने ADT संस्करण में अपग्रेड करने के अलावा (22.6.2 या 23.2)

ध्यान दें:

पुराने एडीटी संस्करणों में से कुछ जो एक्सएमएल को लोड नहीं करेंगे और हर बार जब आप खोलते हैं तो कोई मेमोरी अतिप्रवाह नहीं होता है क्योंकि यह जीसी ओवरहेड सीमा पहले धागे पर चर्चा की गई सीमा से अधिक है।

उपाय:

ग्रहण के निचले भाग में कचरा प्रतीक होगा जो रन गार्बेज कलेक्टर बताता है । जब भी आप एंड्रॉइड की एक XML फाइल को बंद करते हैं, तो मेमोरी को रिलीज करने के लिए ट्रैश कैन या रन कचरा कलेक्टर पर क्लिक करना न भूलें । इस तरह से आप कार्यक्षेत्र को इस तरह की त्रुटि से दुर्घटना से बचा सकते हैं: डी

यह एक अंतिम समाधान हो सकता है क्योंकि आप अपनी रैम सीमा से अधिक वीएम मूल्य नहीं बढ़ा सकते हैं यदि आप बहुत बार अपना एंड्रॉइड एक्सएमएल खोलते हैं खासकर यदि आप मेरे जैसे बहुत सारे यूआई काम करते हैं: पी

मुझे उम्मीद है कि यह इस धागे में आने वाले हर किसी की मदद करेगा :)

शांत और कोड पर रखें


1

इस त्रुटि के साथ 12 घंटे के बाद और eclipse.ini फ़ाइल को बदलने के साथ कोई सफलता नहीं मिली। मेरे पर्यावरण चर में "_JAVA_OPTIONS" नाम का एक चर था, जिसका मूल्य "-Xmx512M" था। इसी मान को eclipse.ini (-Xmx4096M) में बदलते हुए मैं एक बार फिर अपनी परियोजना को एक एपीके फ़ाइल में निर्यात करने में सक्षम था।


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

1

मुझे इस कार्य के पीछे का कारण नहीं पता है, लेकिन यह मेरे लिए हर समय काम करता है जब उपरोक्त सभी नहीं करते हैं।

शॉर्ट-कट या लिंक से ग्रहण शुरू न करें। हमेशा इसे eclipse.exeअपने ग्रहण फ़ोल्डर से खोलें , जो बहुत फ़ोल्डर रखता हैeclipse.ini

नोट - मैंने केवल linux के लिए प्रयास किया है।


1

इस कष्टप्रद संदेश से बचने के लिए, मुझे अपना कॉन्फ़िगरेशन इस प्रकार बदलना पड़ा:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-

144807
-product
com.android.ide.eclipse.adt.package.adtproduct
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

उत्तर के आधार पर सही, बदलते हुए

-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

तथा:

--launcher.XXMaxPermSize
1024m

1
1) Open eclipse.ini file
2)change
-Xms40m
-Xmx512m
to 
-Xms512m
-Xmx1024m
3)Restart eclipse

ग्रहण के इस मूल पथ में ग्रहण की तरह ही eclipse.ini फ़ाइल स्थित होगी:

C:\Users\username\Downloads\adt-bundle-windows-x86_64-20140702\eclipse\eclipse.ini

एक ही फाइल एंड्रॉइड स्टूडियो प्रोजेक्ट में स्थित होगी: -

C:\Users\username\AppData\Local\Android\sdk\tools\lib\monitor-x86_64\monitor(Type:Configuration settings)

0

यदि ये उत्तर काम नहीं करते (वे मेरे लिए नहीं थे) तो यह कोशिश करें:

1) अपने कार्यक्षेत्र में अपने .metadata फ़ोल्डर की एक प्रति बनाएँ।

2) एक कॉपी बनाने के बाद अपने .metadata निर्देशिका को हटा दें

3) ग्रहण खोलें और ग्रहण बंद करें।

4) अपने प्लगइन्स फ़ोल्डर को अपने पुराने .metadata से अपने नए .metadata में कॉपी करें

5) वापस अपने कार्यक्षेत्र में सभी परियोजनाओं को आयात करें

6) शांत और कोड पर रखें!

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