डेक्स को मर्ज करने में असमर्थ


307

मेरे पास एंड्रॉइड स्टूडियो बीटा है। मैंने अपने पुराने मॉड्यूल को संकलित करने के साथ एक नया प्रोजेक्ट बनाया लेकिन जब मैंने ऐप लॉन्च करने की कोशिश की तो यह संदेश के साथ लॉन्च नहीं हुआ:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.

com.android.builder.dexing.exArchiveMergerException: डेक्स को मर्ज करने में असमर्थ

लेकिन मुझे नहीं पता कि इस त्रुटि को कैसे हल किया जाए। मैंने इसे घंटों तक देखा लेकिन कोई सफलता नहीं मिली।

मेरी परियोजना में बाधा:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta6'
        classpath "io.realm:realm-gradle-plugin:3.7.1"
        classpath 'com.google.gms:google-services:3.1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

मेरी एप्लिकेशन श्रेणी:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "parad0x.sk.onlyforyou"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }
    compileOptions {
        targetCompatibility 1.7
        sourceCompatibility 1.7
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    lintOptions {
        checkReleaseBuilds false
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    //noinspection GradleCompatible
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    compile project(path: ':loginregisterview')


}

और मेरा मॉड्यूल ग्रेडेल:

    apply plugin: 'com.android.library'
apply plugin: 'realm-android'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.0.2'
    compile 'com.android.support:support-v4:26.1.0'
    compile 'com.github.bumptech.glide:glide:4.0.0'
    testCompile 'junit:junit:4.12'
    compile project(path: ':parser')

}

मेरा दूसरा मॉड्यूल:

     apply plugin: 'com.android.library'
apply plugin: 'realm-android'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    realm {
        syncEnabled = true
    }
    useLibrary 'org.apache.http.legacy'

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile 'junit:junit:4.12'
    //  compile 'com.android.support:appcompat-v7:23.1.0'

    //   compile 'com.fasterxml.jackson.core:jackson-core:2.9.0'
 //   compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
 //   compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
    compile 'com.google.code.gson:gson:2.6.2'
}

____________finding_________

जब मैंने दूसरे मॉड्यूल (पार्सर) को आयात नहीं किया था, तो एप्लिकेशन डेक्स पर क्रैश नहीं हुआ था लेकिन जब मॉड्यूल आयात नहीं किया गया था तो ऐप काम नहीं करता था। : डी: डी


6
अगर किसी को एंड्रॉइड स्टूडियो 3.0 स्थिर संस्करण में एक ही मुद्दा मिल रहा है, तो मैं आपको दृढ़ता से जवाब स्टैकओवरफ्लो की समीक्षा करने की सलाह दूंगा ।
भावेश पतड़िया

1
मुझे भी यही समस्या थी और मैंने इस पृष्ठ पर बताई गई प्रत्येक विधि का पालन किया, लेकिन इससे मुझे मदद नहीं मिली, इसलिए मैं ग्रेड पर जा रहा हूं और प्रत्येक लाइब्रेरी पर कर्सर रखने के लिए अपने नए संस्करण की जांच करने के लिए उपलब्ध है या नहीं। जिनके पास नया संस्करण है, इसलिए मैंने अपडेट किया, सिंक सिंक और रन किया। इसने काम कर दिया।
शहजाद अफरीदी

जवाबों:


293

जब मैं से अद्यतन com.google.android.gms:play-services:11.2.2करने के लिए मैं एक ही समस्या थी com.google.android.gms:play-services:11.4.0। इसने मेरे लिए इसे हल किया:

  1. स्वच्छ
  2. फिर से बनाना

आप केवल उस समस्या के साथ वास्तविक समस्या में देरी करते हैं। शायद ver 11.4.0 में कम विधियाँ शामिल हैं। नीचे मेरा जवाब देखें। यह त्रुटि आपको अगली निर्भरता में मिल जाएगी जिसमें आप अनुमान लगाते हैं
23

2
यह मेरे मुद्दे को हल करता है, जहां multiDexEnabled trueअकेले नहीं था
यूरी ब्रिगेंस

28
com .google.android.gms: play-services-location: 11.6.0 ... के साथ भी ऐसा ही isse एक वैध समाधान नहीं है
issamux

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

3
यदि उपरोक्त कोड "compileSdkVersion 26" के मामले में काम नहीं कर रहा है, तो यह कोशिश करें .. पर जाएं - build.gradle (मॉड्यूल: एप्लिकेशन) - डिफ़ॉल्ट में "multDexEnabled सच" जोड़ें और अंतिम फ़ाइल पर जाएं | सेटिंग्स | निर्माण, निष्पादन, तैनाती | तुरंत चलाएं और सक्षम करने / अक्षम करने का प्रयास करें
सुमित सक्सेना

325

मैंने उपरोक्त सभी की कोशिश की और उनमें से कोई भी मदद नहीं करता है। आखिरकार, मुझे यह काम मिल गया है:

एप्लिकेशन / build.gradle:

android {
    defaultConfig {
       multiDexEnabled true
    }
}

11
धन्यवाद। मुझे लगता है कि समस्या यह थी कि अधिकांश उत्तर अन्य स्रोतों से JAR फ़ाइलों को शामिल करने के लिए लेखांकन नहीं हैं जिन्हें आप पुनर्निर्माण नहीं कर सकते। मल्टीडेक्स लगता है कि अन्यथा असंगत कोड को संयोजित करने की अनुमति देता है।
ब्रेंडन व्हेले

2
इस समाधान ने मेरे लिए काम किया, लेकिन इसके अलावा, मुझे एपीआई <= 21 डेवलपर.
android.com/studio/build/multidex.html

2
डेस्पाइट स्वीकार किए गए उत्तर की तुलना में अधिक प्रासंगिक होने के कारण मुझे अभी भी "डेक्स को मर्ज करने में असमर्थ" संदेश मिलता है
जॉन

13
मेरे लिए काम नहीं किया। इस परिवर्तन के साथ मुझे अलग त्रुटि मिली: कार्य के लिए निष्पादन विफल रहा ': ऐप: transformClassesWithMultidexlistForDebug
अतुल

1
हाँ 5 घंटे के लिए मैं पूरी तरह से अलग जवाब के साथ निवास कर रहा था। लेकिन किसी तरह मुझे एहसास हुआ कि यह मल्टीडेक्स मुद्दा था और यहां उतरा। मैं सच था। धन्यवाद आदमी
sud007

59

चेतावनियों पर ध्यान दें!

कभी-कभी आपको केवल चेतावनी को खत्म करने की आवश्यकता होती है और त्रुटि स्वचालित रूप से गायब हो जाएगी। नीचे देखें विशेष मामला:


मेरी मॉड्यूल-स्तरीय build.gradleफ़ाइल में ये दो निर्भरताएँ थीं :

implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'

और स्टूडियो ने चेतावनी दी थी ( डेक्स विलय की समस्या के अलावा ):

सभी com.android.supportपुस्तकालयों को सटीक एक ही संस्करण विनिर्देश का उपयोग करना चाहिए (मिक्सिंग संस्करण रनटाइम क्रैश का कारण बन सकता है)। मिले संस्करणों 27.0.2, 21.0.3। उदाहरणों में शामिल हैं com.android.support:animated-vector-drawable:27.0.2औरcom.android.support:support-v4:21.0.3

इसलिए मैंने स्पष्ट रूप सेcom.android.support:support-v4 ( विवरण के लिए यहां देखें) और दोनों समस्याओं (चेतावनी और डेक्स विलय से संबंधित) के संस्करण को निर्धारित किया है :

implementation 'com.android.support:support-v4:27.0.2'  // Added this line (according to above warning message)
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'

अन्य समान स्थितियों के लिए नीचे टिप्पणी देखें।


1
धन्यवाद, यह मेरे लिए मुद्दा तय किया। यह मूल रूप से eu.inloop को जोड़ने के कारण हुआ: androidviewmodel: 1.3.4
lsrom

1
वास्तव में, मैं चाहता हूं कि त्रुटि अधिक सटीक हो सकती है
अमीन केशवार्ज़ियन

1
बहुत बहुत धन्यवाद। मेरी भी यही समस्या थी। मैं v26 का उपयोग कर रहा था, sdk 27 ​​में अपडेट किया गया और समस्या का समाधान किया गया।
जॉनी

2
यह सही उत्तर होना चाहिए। एक लाइब्रेरी (एयरबीएनबी / एपॉक्सी) को जोड़ने के बाद मेरे काम करना बंद हो गया support:design:26.1.0, जिस पर निर्भरता थी , और मेरे पास अभी तक वह निर्भरता नहीं थी। मेरे अन्य पुस्तकालयों का समर्थन संस्करण 27.1.0 था। संस्करण के support:designसाथ निर्भरता जोड़ने के बाद 27.1.0, मेरा मुद्दा हल हो गया था।
alashow

2
धन्यवाद। तुम मेरा दिन बचाओ।
नितिनजित

37

मेरे मामले में, दुर्भाग्य से, न तो मिशेल और न ही सुरगाच के समाधान ने मेरे लिए काम किया।

इसलिए मैंने निम्न कार्य करके इस समस्या को हल किया:

में Gradle: 3.0 संकलन विन्यास अब पदावनत किया गया है और द्वारा प्रतिस्थापित किया जाना चाहिए कार्यान्वयन या एपीआई । अधिक जानकारी के लिए आप यहां पढ़ सकते हैं आप ग्रेडल बिल्ड टूल पर आधिकारिक डॉक्स पढ़ सकते हैं

संकलन कॉन्फ़िगरेशन अभी भी मौजूद है, लेकिन इसका उपयोग नहीं किया जाना चाहिए क्योंकि यह उन गारंटियों की पेशकश नहीं करेगा जो एपीआई और कार्यान्वयन कॉन्फ़िगरेशन प्रदान करते हैं।

कार्यान्वयन या एपीआई के बजाय संकलन का उपयोग करना बेहतर है

बस कार्यान्वयन के साथ संकलन को बदलें , debugCompile को डिबग इम्प्लीमेंटेशन , testCompile के साथ testIm कार्यान्वयन और androidtestcompile के साथ androidTestImplementation

उदाहरण के लिए: इसके बजाय

compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'

इस तरह का उपयोग करें

implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'

उसके बाद

  • अपनी परियोजना के अंदर .gradle फ़ोल्डर को हटाएं (ध्यान दें कि .gradle देखने के लिए, आपको ऊपरी बाईं ओर नाविक में "प्रोजेक्ट" दृश्य पर स्विच करने की आवश्यकता है)
  • सभी बिल्ड फ़ोल्डर हटाएं और ग्रेडल कैश को ।
  • बिल्ड मेनू से, क्लीन प्रोजेक्ट दबाएं बटन दबाएं।
  • कार्य पूरा होने के बाद, बिल्ड मेनू से प्रोजेक्ट पुनर्निर्माण बटन दबाएँ।

आशा है कि यह मदद करेगा!


2
धन्यवाद, मुझे केवल इतना करना था कि इसे लागू करने के लिए संकलन तैयार किया गया था और इसे सफलतापूर्वक बनाया गया था, अन्य चरणों को पूरा नहीं करना था। फेसबुक SDK
Shayno

2
मेरे लिए काम किया - अंतर्दृष्टि में क्यों?
एलेक्स

1
हटाने के लिए फ़ोल्डर होना चाहिए .gradleऔर नहीं./gradle
गैरी बक

1
एकमात्र उत्तर जो वास्तव में मेरे लिए काम करता था। धन्यवाद!
माइकल रिचर्डसन

1
धन्यवाद, यह सबसे अच्छा जवाब है। यह खोज के शीर्ष पर होना चाहिए। मेरे लिए काम किया।
डेंजर

27
  1. .gradleनिर्देशिका हटाएँ ।

  2. अपना ऐप फिर से चलाएं।

टिप्पणियाँ

  • .gradleनिर्देशिका अपने प्रोजेक्ट की रूट फ़ोल्डर में है। (आपको पहले छिपी हुई फाइलें दिखानी पड़ सकती हैं।)
  • मुझे हर बार ऐसा करना पड़ता है जब मैं एंड्रॉइड 3.0 का उपयोग करके एक निर्भरता मॉड्यूल को अपडेट करता हूं। (एंड्रॉइड स्टूडियो 3 की हालिया रिलीज से लगता है कि समस्या का समाधान हो गया है।)

4
इससे मुझे तब मदद मिली जब मैंने एक अमान्य कैश और पुनः आरंभ किया
वासिली फेडोटोव

मैं अविश्वास में था जब इसने मेरा मुद्दा तय किया था .. मैंने सभी संकलित कीवर्ड को हटाते हुए, कुछ संदिग्ध ilb संस्करणों को अपडेट करते हुए सब कुछ अपडेट करने की कोशिश की थी .. जब मैंने आखिरकार ऐसा किया, तो यह काम किया ..
hanzolo

तुमने मेरी जान बचाई है! धन्यवाद
Masterfego

24

.gradleSuragch द्वारा सुझाया गया हटाना मेरे लिए पर्याप्त नहीं था। इसके अतिरिक्त, मुझे एक प्रदर्शन करना था Build > Clean Project

ध्यान दें कि, देखने के लिए .gradle, आपको ऊपरी बाईं ओर नाविक में "प्रोजेक्ट" दृश्य पर स्विच करने की आवश्यकता है:

प्रोजेक्ट दृश्य पर स्विच करें


23

मैंने हर दूसरे समाधान की कोशिश की, लेकिन किसी ने मेरे लिए काम नहीं किया। अंत में, मैंने संपादन द्वारा उसी निर्भरता संस्करण का उपयोग करके इसे हल कियाbuild.gradle । मुझे लगता है कि पुस्तकालय में एक समस्या को जोड़ने पर यह समस्या होती है जो समर्थन या Google पुस्तकालयों के विभिन्न निर्भरता संस्करण का उपयोग करती है।

अपनी बिल्ड ग्रेडल फ़ाइल में निम्न कोड जोड़ें। तब cleanऔर rebuildप्रोजेक्ट।

पीएस: यह मेरे लिए पुराना समाधान था इसलिए आपको निम्न पुस्तकालयों के अद्यतन संस्करण का उपयोग करना चाहिए।

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '26.1.0'
        }
    } else if (requested.group == "com.google.android.gms") {
        details.useVersion '11.8.0'
        } else if (requested.group == "com.google.firebase") {
            details.useVersion '11.8.0'
          }
      }
}

5
अन्य सभी समाधानों की कोशिश की, अंत में केवल इसने मदद की: /
एंट

@ अलि गुरेल्ली आपका बहुत बहुत धन्यवाद, मैंने कई समाधान आजमाए लेकिन केवल यह काम।
बिपिन भारती

थैंक्स बट मेरे लिए मैं वर्जन डिटेल्स का उपयोग करता हूं। फ्यूज वर्जन '15 .0.0 '
एलसुन्होती

समाधान के लिए धन्यवाद। मेरे साथ भी ऐसा ही हुआ। Google टैप और भुगतान 10.0.0 था और बाकी सभी लिबास नवीनतम संस्करण पर हैं
आर वर्ल्ड

सुचारू रूप से काम किया धन्यवाद
संकल्प

14

अगर (1) काम को साफ और पुनर्निर्माण करने की कोशिश करें) तो अच्छा है

और यदि (2. क्रमिक कार्य को हटाने का प्रयास करें) तो अच्छा है

और-> 3. ग्रेड में जोड़ने की कोशिश करें

android.enableD8 = false

और-> 4. multiDexEnabledअपने build.gradle में सच जोड़ें

android {
    compileSdkVersion 26
    defaultConfig {
      ...
        minSdkVersion 15
        targetSdkVersion 26
        multiDexEnabled true
     ...
    }
}

और निर्भरता जोड़ें

dependencies {
    compile 'com.android.support:multidex:1.0.1'}

यह यू और इतने पर काम करता है, लेकिन यह वास्तव में उदाहरण के लिए आपकी समस्या की प्रकृति पर निर्भर करता है

इस लाइब्रेरी को जोड़ते ही मुझे त्रुटि मिल गई

implementation 'com.jjoe64:graphview:4.2.2'

और बाद में मुझे पता चला कि मुझे इसकी जाँच करनी है और मुझे समर्थन पुस्तकालयों के एक ही संस्करण को जोड़ना है। इसलिए मुझे एक और संस्करण की कोशिश करनी होगी

compile 'com.jjoe64:graphview:4.2.1'

और यह समस्या को ठीक करता है। इसलिए उस पर ध्यान दें।


3
इस समस्या के लिए सबसे उपयोगी तरीका है। एक मैं यहां उल्लेख करना चाहता हूं कि, आप अधिक विवरण के लिए 'gradlew app: transformDexArchiveWithExternalLibsDexMergerForDebug --stacktrace' cmd का उपयोग कर सकते हैं। मैंने मुझे बचा लिया, पाया कि मुझे मल्टीडेक्स को सक्षम करना है। आशा सहायक।
पांडा

13

मेरे मामले में कमरा लाइब्रेरी के कारण था:

compile 'android.arch.persistence.room:runtime:1.0.0-alpha1'

इसे बदलना:

compile 'android.arch.persistence.room:runtime:1.0.0'

काम किया।


बहुत बहुत धन्यवाद, इससे मुझे बहुत मदद मिली!
फिल

तो यह जवाब पाकर खुशी हुई। धन्यवाद!
callOfCode

12

बस उपरोक्त समाधानों को जोड़ने के लिए:

सुनिश्चित करें कि आपके पास कई स्थानों (या एक ही फ़ाइल में) के विभिन्न संस्करणों की ओर इशारा करते हुए डुप्लिकेट निर्भरताएं नहीं हैं।


मुझे लगता है कि मल्टीडेक्सएनेबल सच को जोड़ने से पहले इसे पहले जांचना चाहिए, और अन्य उत्तरों की कोशिश करनी चाहिए। धन्यवाद!
अलेक्सांद्र ए '

11

नमस्ते, मैं एक ही मुद्दा लगभग सब कुछ करने की कोशिश की है। इसलिए, अंत में मैंने लाइन से सब कुछ डिबग करके 6 घंटे के लंबे संघर्ष के बाद हल किया।

classpath 'com.google.gms:google-services:3.0.0'

Google- सेवाएँ 3.0 , PlayServiceVersion: 11.6.0 या उससे कम के साथ स्टूडियो 3.0 के साथ फायरबेस का समर्थन नहीं करता है।

implementation "com.google.firebase:firebase-messaging:$rootProject.ext.playServiceVersion"
implementation "com.google.firebase:firebase-core:$rootProject.ext.playServiceVersion"
implementation "com.firebase:firebase-jobdispatcher-with-gcm-dep:$rootProject.ext.jobdispatcherVersion"

समाधान :

मैंने Google सेवाओं को बदल दिया है

classpath 'com.google.gms:google-services:3.1.1'

और यह फायरबेस सेवाओं का समर्थन करता है।

उम्मीद है कि कोई अपना समय बचाए।


1
मेरे पास वही मुद्दा है जो मैं 11.4.0 कार्यान्वयन "com.google.firebase: firebase-core: 11.4.0" के रूप में playServiceVersion का उपयोग कर रहा था, इसे "com.google.firebase: firebase-core: 11.6.2" को लागू करने के लिए इसे ठीक करें मुद्दा । तो कृपया अलग-अलग काम के लिए संस्करण निर्भरता को सत्यापित करें
परिवाद के durgeshtrivedi

9
  1. सक्षम करें

    defaultConfig {मल्टीडेक्शनल इनेबल}

  2. यदि चरण 1 तब काम नहीं करता है

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


+1 - मेरे पास समर्थन परिवाद, rxjava और एक 3 पार्टी निर्भरता (13k लाइनें) थी। जब मैंने विधि गणना देखी तो मेरी आँखें लगभग बाहर हो गईं।
स्नोडनीपर

6

संभावनाओं में से एक है: एक ही पुस्तकालय की उपस्थिति लेकिन निर्भरता में विभिन्न संस्करणों के साथ

मुझे फ़ाइल में निम्न पंक्तियों के साथ यह समस्या थी:

  • compile fileTree(include: ['*.jar'], dir: 'libs')
  • compile 'com.google.code.gson:gson:2.8.2'

गन्स लाइब्रेरी मेरी लिबास डायरेक्टरी में थी लेकिन पिछले वर्जन के साथ। मैंने gson-2.3.1.jarलिबास डायरेक्टरी से डिलीट कर दिया और सब कुछ वापस सामान्य हो गया है।


हटाने compile fileTree(include: ['*.jar'], dir: 'libs').. धन्यवाद (y) भी मेरे लिए तय
Dinuka Salwathura

5

यदि यह त्रुटि कोटलिन समर्थन और किसी अन्य समाधान कार्य में शामिल होने के बाद आपके लिए दिखाई दी, तो ऐप मॉड्यूल के कोटलिन निर्भरता को बदलने का प्रयास build.gradleकरें:

implementation ("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version") {
    exclude group: 'org.jetbrains', module: 'annotations'
}

यह मेरे लिए एंड्रॉइड स्टूडियो 3.0 बीटा 6 पर काम करता है । आगे के स्पष्टीकरण के लिए यह उत्तर देखें ।


हां, ऐसा लगता है कि अगर एनोटेशन को बाहर नहीं किया गया तो कोटलिन परिचय बिल्ड को तोड़ सकता है।
स्टॉयचो एंड्रीव

धन्यवाद। यह मेरे लिए फिक्स था। अपनी समस्या को पहचानने के लिए मैंने 3 दिन संघर्ष किया।
नवीन कुमार M

कोटलिन प्लगइन संस्करण 1.2.30 के बदले अपग्रेड करने का प्रयास करें (बस जारी किया गया)। अब इंस्टेंट रन को फिर से सक्षम किया जा सकता है!
केटको

5

एंड्रॉइड स्टूडियो 3.0 के साथ स्थिर निर्माण नीचे दिए गए चरणों ने मेरे लिए काम किया:

  1. SdkManager के लिए मिला -> Android Sdk -> Sdk टूल और अद्यतन Google play सेवाएं नवीनतम संस्करण में 46 पर।
  2. स्वच्छ परियोजना और पुनर्निर्माण परियोजना।

5

[संयुक्त राज्य अमेरिका के लिए DEX SOLVED] ढेर होने के घंटों के बाद मैंने "UNGE TO MERGE DEX ERROR" का समाधान किया

  1. V27.1.0 के अपने ग्रेड में सभी com.android.support लाइनों को अपडेट करें

कारण - एंड्रॉइड ने इसे समर्थन पुस्तकालयों को v27.1.0 में अपडेट किया है, इसलिए आपको 26.1.0 से अपने एंड्रॉइड फ़ाइल में सभी एंड्रॉइड समर्थन लाइनों को 27.1.0 में बदलना होगा।

  1. सुनिश्चित करें कि रिपॉजिटरी सेक्शन में एक मावेन सेक्शन शामिल है " https://maven.google.com " एंडपॉइंट के । उदाहरण के लिए:

    allprojects {repositories {jcenter () maven {url " https://maven.google.com "}}}

कारण: - एंड्रॉइड एसडीके प्रबंधक में समर्थन पुस्तकालयों को अपडेट नहीं कर सकता है और अब यह अपडेट करने के लिए maven.google.com का उपयोग करता है, इसलिए आपको 27.1.0 समर्थन पुस्तकालयों का उपयोग करने के लिए इसे शामिल करना होगा

संस्करण बदलने के बाद: 1. स्वच्छ परियोजना 2. परियोजना का पुनर्निर्माण


4

नीचे कमांड जोड़ें:

android {
...

    dexOptions {

        jumboMode true
        javaMaxHeapSize "4g"

    }
}

4

Google Play सेवाएं (नवीनतम संस्करण) + सहित इंस्टॉल करना

android {
    defaultConfig {
        multiDexEnabled true
        }
}

बिल्ड में .ग्रेड ने मेरे लिए समस्या को हल किया, परियोजना को साफ और पुनर्निर्माण करना सुनिश्चित करें!


3

मेरे मामले में यह gson-2.8.1.jar था जिसे मैंने प्रोजेक्ट के libs फ़ोल्डर में जोड़ा है । लेकिन संदर्भ एसडीके द्वारा पहले से ही था। इसलिए यह gson-2.8.1.jar जोड़ने के लिए अच्छा नहीं था को libs फ़ोल्डर में जाए।

जब मैंने इसे वें gson-2.8.1.jar निकाला परियोजना इस wiered त्रुटि के बिना संकलित करता है।

इसलिए libs फ़ोल्डर और निर्भरता को संशोधित करने का प्रयास करें ।


3

मैं क्रिस-जूनियर से सहमत हूं। यदि आप अपने AdMob विज्ञापनों को एम्बेड करने के लिए Firebase का उपयोग कर रहे हैं (या यहां तक ​​कि अगर आप नहीं हैं) तो प्ले-सर्विसेज-एनालिटिक्स में प्ले-सर्विसेज-विज्ञापन शामिल हैं, भले ही आप उस पर निर्भरता के रूप में न जोड़ें। Google ने स्पष्ट रूप से अपने 11.4.0 रोल-आउट में गलती की है क्योंकि एनालिटिक्स विज्ञापन के संस्करण 10.0.1 में शामिल है, न कि 11.4.0 पर (चूहे पर संकेत देने वाला माउस यह दिखाता है)।

मैंने मैन्युअल रूप से 'com.google.android.gms: play-services-ads: 11.4.0' को शीर्ष पर जोड़ा है , जो काम किया है, लेकिन इसके तुरंत बाद ही मैंने त्वरित रूप से अक्षम किया: http://stackoverflow.com/a/35169716/530047

तो इसका या तो 10.0.1 पर फिर से आना या विज्ञापनों को जोड़ना और इंस्टेंट रन को अक्षम करना। अगर यह किसी भी मदद करता है कि मैं क्या पाया है।


क्या ओपी ने प्ले सर्विसेज का उल्लेख किया है?
इगोरगानापोलस्की

स्वीकृत उत्तर ने किया। अगर यह मुद्दा उस परिदृश्य के बिना सामने आ रहा है तो मुझे नहीं पता!
जोनाथन

2

मैंने उसी समस्या का सामना किया और अपने मामले का वास्तविक कारण पाया। पहले, मैंने पिछले सभी उत्तरों को फिर से आजमाया, लेकिन इससे समस्या हल नहीं हुई। मेरे पहनने के ऐप प्रोजेक्ट में दो मॉड्यूल हैं, और बिल्ड.ग्रेडल निम्नानुसार है my

मॉड्यूल के बिल्ड पहनें।

implementation project(':common')
implementation files('libs/farmer-motion-1.0.jar')

सामान्य मॉड्यूल का बिल्ड.ग्रेड:

implementation files('libs/farmer-motion-1.0.jar')

3.x पर अपग्रेड करने से पहले, 'कार्यान्वयन' सभी 'संकलन' हैं।

मैं स्टैक ट्रेस प्राप्त करने के लिए --stacktrace विकल्प के साथ gradlew चलाता हूं, जब आप यह समस्या आती है तो आप केवल gradle कंसोल विंडो पर क्लिक कर सकते हैं। और पाया कि जार पैकेज के लिए बार-बार निर्भरता:

Caused by: com.android.dex.DexException: Multiple dex files define Lcom/farmer/motion/common/data/pojo/SportSummary$2;

आधिकारिक माइग्रेशन गाइड को पढ़ने के बाद किसान-गति-1.0.jar पैकेज में क्लास स्पोर्टस्मरी , मैंने अपना build.gradle इस प्रकार बदला:

मॉड्यूल के बिल्ड पहनें।

implementation project(':common')
// delete dependency implementation files('libs/farmer-motion-1.0.jar')

सामान्य मॉड्यूल 的 build.gradle:

api files('libs/farmer-motion-1.0.jar') // change implementation to api

अब पहनने वाले मॉड्यूल में सामान्य मॉड्यूल द्वारा किसान-गति-1.0.jar निर्यात की निर्भरता होगी। यदि रनटाइम के दौरान जार पैकेज पर कोई निर्भरता नहीं है, तो जार पैकेज की ' कार्यान्वयन ' निर्भरता को 'कंपाइलऑनली' में भी बदला जा सकता है


2

मुझे भी समस्या थी।

मैं बदलकर compileSdkVersionऔर targetSdkVersionनवीनतम संस्करण में हल करने में सक्षम था ।


2

हमारे प्रोजेक्ट के लिए, हमने गलती से एक ही जार को दो बार अलग-अलग नाम से जोड़ दिया। उनमें से एक को हटाने से समस्या हल हो गई।


इससे मेरी समस्या हल हो गई। मैं एक आंतरिक एंड्रॉइड लाइब्रेरी प्रोजेक्ट का निर्माण कर रहा था और इसके libsफ़ोल्डर के तहत , मेरे पास दो जार फाइलें थीं, जिनमें से एक दूसरे का सिर्फ एक बैकअप है लेकिन एक अलग फ़ाइल नाम के साथ।
होपिया

2

यह आपकी समस्या नहीं हो सकती है, लेकिन मुझे यह त्रुटि तब हुई जब मैंने प्रोजेक्ट की निर्भरता {} अनुभाग में गलती से दो समान (लेकिन अलग-अलग नाम वाले) पुस्तकालयों को शामिल कर लिया।


1

मेरे लिए यह app \ build.gradle में फायरबेस मैसेजिंग को अपडेट कर रहा था :

compile 'com.google.firebase:firebase-messaging:10.0.1'

सेवा

compile 'com.google.firebase:firebase-messaging:11.4.2'

1

संभावित मूल कारणों में से एक: डुप्लिकेट क्षणिक निर्भरताएँ जो मल्टी-मॉड्यूल प्रोजेक्ट्स के एंड्रॉइड स्टूडियो आयात द्वारा ठीक से संभाला नहीं गया था। अपनी सूची जांचें और उन्हें हटा दें। मेरे लिए, यह निश्चित रूप से फिक्स था:

--- a/project/module/build.gradle
+++ b/project/module/build.gradle
@@ -21,5 +21,4 @@ android {
 dependencies {
     implementation project(':upstream-dependency-project')
     implementation 'com.android.support:support-v4:18.0.0'
-    implementation files('libs/slf4j-android-1.6.1-RC1.jar')
 }

1

मुझे अपनी परियोजना के लिए इस समस्या का कारण पता चला है। मुझे build.gradle में दो बार एक निर्भरता जोड़ा गया था । निर्भरता जोड़कर एक बार और जार निर्भरता जोड़कर एक बार:

संकलन 'org.achartengine: achartengine: 1.2.0'
...
कार्यान्वयन फ़ाइलें ('../ achartengine-1.2.0.jar')

पहली लाइन समस्या को हल करने के बाद हटा दें।


1

यदि आपके लिए शीर्ष उत्तरों ने काम नहीं किया है, तो आपका मुद्दा यह हो सकता है कि आपके पास एक से अधिक निर्भरताएँ हों जो एक ही लाइब्रेरी पर निर्भर हों।

यहां कुछ डिबगिंग टिप्स दिए गए हैं। इस नमूना कोड में, com.google.code.findbugs:jsr305:3.0.0अपमानजनक पुस्तकालय है।

हमेशा अपने समाधान की जांच करने के लिए संशोधित करने के लिए हर बार साफ और पुनर्निर्माण करें!

  1. --stacktraceअधिक विस्तार के लिए ध्वज के साथ निर्माण करें । यह एक वर्ग, Google के बारे में शिकायत करेगा जो पुस्तकालय को खोजने के लिए वर्ग है। यहां बताया गया है कि आप --stacktraceध्वज के साथ हमेशा Android स्टूडियो चला सकते हैं

  2. View > Tool Windows > Gradle Consoleएक निर्माण के बाद एंड्रॉइड स्टूडियो में ग्रैडल कंसोल पर एक नज़र डालें

  3. बार-बार चलने से निर्भरता के लिए जाँच करें ./gradlew -q app:dependencies। प्रत्येक बार जब आप अपने बिल्ड.ग्रेड को संशोधित करते हैं, तो आप इसे फिर से चला सकते हैं।

  4. बिल्ड.ग्रेड में,

    android {
            ...
            configurations.all {
                resolutionStrategy {
                    // Force a particular version of the library 
                    // across all dependencies that have that dependency
                    force 'com.google.code.findbugs:jsr305:3.0.0'
                }
            }
    }
  5. बिल्ड.ग्रेड में,

    dependencies {
        ...
        implementation('com.google.auth:google-auth-library-oauth2-http:0.6.0') {
            // Exclude the library for this particular import
            exclude group: 'com.google.code.findbugs'
        }
    }
  6. बिल्ड.ग्रेड में,

    android {
        ...
        configurations.all {
            resolutionStrategy {
                // Completely exclude the library. Works for transitive
                // dependencies.
                exclude group: 'com.google.code.findbugs'
            }
        }
    }
  7. यदि आपकी कुछ निर्भरता जार फ़ाइलों में है, तो जार फ़ाइलों को खोलें और देखें कि क्या कोई परस्पर विरोधी वर्ग नाम हैं। यदि वे हैं, तो आपको संभवतः नए वर्ग नामों के साथ जार को फिर से बनाना होगा या छायांकन को देखना होगा ।

कुछ और पृष्ठभूमि पढ़ना:


1
android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}

2
क्या आप विस्तृत कर सकते हैं?
sg7

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

1

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

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