DexException: नए इंडेक्स 65536 को नॉन-जंबो इंस्ट्रक्शन में मर्ज नहीं किया जा सकता


84

किसी अज्ञात कारण से मेरा ऐप अचानक एंड्रॉइड स्टूडियो से नहीं बनेगा।

मैं मिलता रहा

> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/martynas/android-sdk/build-tools/19.1.0/dx --dex --num-threads=4 --output
...
...
...
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction!

जबकि एक ही एप्लिकेशन को कमांड लाइन से सफलतापूर्वक बनाया गया है। मैंने विधि संदर्भ गणना की जाँच की है और यह खूंखार 64k से नीचे है।

अब मैं 0.8.11 का उपयोग कर रहा हूं।

जवाबों:


57

अपने प्रोजेक्ट पर इस लाइन को जोड़ने की कोशिश करें

dex.force.jumbo सच =

जो डेक्स फाइलों में तार के लिए सीमा बढ़ाता है। और आपका प्रोजेक्ट शायद संकलित करेगा।

नोट: जंबो सेट के साथ, एक डीएक्स में केवल तरीकों के लिए 64K की एक और सीमा है। यदि आपको भविष्य में यह सीमा मिलती है, तो आपको कुछ निर्भरताएं दूर करने की आवश्यकता होगी।

अपडेट - Google Play सेवाएं 6.5 (12-08-14)

संस्करण 6.5 के साथ Google ने आखिरकार Google Play सेवाओं को खोल दिया। तो अब से यह संभव है कि एपीआई को आपके निष्पादन योग्य में संकलित किया जाए।

उदाहरण :

compile 'com.google.android.gms:play-services-maps:6.5.+'
compile 'com.google.android.gms:play-services-ads:6.5.+'

अन्य सभी Google Play Services API के लिए इस पृष्ठ को d.android.com पर देखें।

अपडेट (21-04-2015): https://developer.android.com/tools/building/multidex.html


11
project.propertiesकाम नहीं करने के लिए जोड़कर मैंने अपनी ग्रेड बिल्ड स्क्रिप्ट को यहाँ वर्णित के रूप में अद्यतन किया: stackoverflow.com/questions/17320088/…
मार्टीनस जर्कस

1
मैंने दोनों समाधान किए: dex.force.jumbo संपत्ति और dexOptions को जोड़ना लेकिन मैं अभी भी एक ही त्रुटि प्राप्त कर रहा हूं। एक अन्य विकल्प?
जुआन सरविया


साभार @ हर्षचैहलाना किसी कारण के लिए यह काम करना शुरू कर दिया .. लेकिन मैं वास्तव में कुछ खास नहीं किया। मेरे पास कुछ सहकर्मी हैं जो इस विकल्प के बिना परियोजना का संकलन कर रहे हैं, लेकिन अब यह मेरे लिए काम कर रहा है। धन्यवाद!
जुआन सरविया

1
संपूर्ण Google Play सेवाओं को संकलित करने के बजाय, मैंने 65K dex सीमा से नीचे रहने के लिए उपयोगी 'आधार' बंडल का उपयोग करते हुए पाया:compile 'com.google.android.gms:play-services-base:7.3.0'
kip2

245

JumboMode प्रॉपर्टी को build.gradle में सेट करें:

android {
    ...
    dexOptions {
        jumboMode true
    }

}

मुझे यह भी उपयोगी लगा: पैकेज द्वारा डीएक्स विधि की गिनती दिखाना


12
धन्यवाद! यह मेरे लिए भी काम करता है। लेकिन इस "जंबोमोड" का क्या अर्थ है?
yital9

3
@ yital9 आप यहाँ जंबो मोड के बारे में अधिक जान सकते हैं: stackoverflow.com/a/30517283/4034572
अल्बर्ट विला केल्वो

कृपया इस ब्लॉक का कारण बताएं
eC Droid

मैंने इसे डीबग बिल्ड टाइप में अकेले जोड़ा क्योंकि रिलीज़ बिल्ड ठीक रहता है, क्योंकि गार्ड है। इस संशोधन के बाद डिबग बिल्ड ठीक हो गया। क्या यह ठीक है?
गार्नेट

1
यह मेरे लिए काम करता है। ध्यान दें कि build.gradle को बदला जाना चाहिए मॉड्यूल है जो com.android.dex.DexException को फेंकता है।
फ्रांसिस बेकन

54

यह मेरे लिए काम करता है। मैं ला रही थीcom.android.dex.DexIndexOverflowException: Cannot merge new index 66636 into a non-jumbo instruction!

android {
    ...
    dexOptions {
        jumboMode true
    }
}

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


यह मेरे लिए काम है। धन्यवाद!!! लेकिन 'जंबोकोड' क्या है? क्या आप मुझे समझा सकते हैं? @Sayooj
महानिदेशक

13

यह विलय में एक बग है जब मर्ज किए जा रहे डेक्स फ़ाइलों में 65536 से अधिक तार होते हैं। नया इंडेक्स एक कास्ट-स्ट्रिंग इंस्ट्रक्शन में फिट नहीं हो सकता है, और डीएक्स मर्जर अलग-अलग साइज के होने पर बदलते निर्देशों का समर्थन नहीं करता है, इसलिए इसे एक कॉन्स-स्ट्रिंग / जंबो इंस्ट्रक्शन में चौड़ा नहीं किया जा सकता है। jb-mr1 एक नया विकल्प जोड़कर: --force-jumbo.This बग "dex.force.jumbo=true"को प्रोजेक्ट में जोड़कर तय किया जा सकता है ।


1
@DeepakSharma आपको jumboMode
Lilo

-1

नवीनतम एंड्रॉइड स्टूडियो और फ्लैग "फोर्स जंबो" के साथ एंड्रॉइड स्टूडियो कंपाइलर सेटिंग्स पर जांच की गई, यह समस्या गायब हो गई।


3
यदि यह संभव है, तो अपने उत्तर में कुछ विवरण जोड़ें, plz।
shA.t
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.