2016-01-15 11 views
6

परिभाषित करती हैं मुझे पता है कि यह प्रश्न पहले से ही पूछा गया है लेकिन मुझे उपलब्ध समाधानों में मेरी समस्या के लिए उपयुक्त उत्तर नहीं मिल रहा है। मुझे आशा है कि आप लोग मेरी मदद कर सकते हैं।ग्रैडल - डीएक्सएक्सप्शन: एकाधिक डीएक्स फाइलें

अपवाद बताता है कि Multiple dex files defined और मैंने इस समस्या को ठीक करने के कई सामान्य तरीकों की कोशिश की। दुर्भाग्य से, यह मदद नहीं की।

* What went wrong: 
Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2 



Cause: com.android.dex.DexException: Multiple dex files define Lnet/jcip/annotations/GuardedBy; 
     UNEXPECTED TOP-LEVEL EXCEPTION: 
     com.android.dex.DexException: Multiple dex files define Lnet/jcip/annotations/GuardedBy; 
      at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579) 
      at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535) 
      at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517) 
      at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) 
      at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 
      at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) 
      at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 
      at com.android.dx.command.dexer.Main.run(Main.java:277) 
      at com.android.dx.command.dexer.Main.main(Main.java:245) 
      at com.android.dx.command.Main.main(Main.java:106) 
  1. मैं साफ करने और परियोजना के पुनर्निर्माण की कोशिश की।

    • बिल्ड -> स्वच्छ परियोजना
    • बिल्ड -> पुनर्निर्माण परियोजना
  2. तब मैं कैश और पुनः प्रारंभ अमान्य करने की कोशिश की।

    • फ़ाइल -> अमान्य कैश और पुनः प्रारंभ
  3. मैं भी निर्भरता में दोहराव को समझने के लिए इस कमांड चलाएँ:

    ./gradlew -q निर्भरता एप्लिकेशन: निर्भरता --configuration संकलन --स्टैकट्रैस

और यहां आउटपुट है। जैसा कि आप देख सकते हैं कि कोई डुप्लीकेट नहीं है।

+--- com.jakewharton.hugo:hugo-annotations:1.2.1 
+--- com.google.code.findbugs:annotations:3.0.1 
| +--- net.jcip:jcip-annotations:1.0 
| \--- com.google.code.findbugs:jsr305:3.0.1 
+--- com.michaelpardo:activeandroid:3.1.0-SNAPSHOT 
+--- com.android.support:appcompat-v7:23.1.1 
+--- com.crashlytics.sdk.android:crashlytics:2.3.0 
| +--- com.crashlytics.sdk.android:crashlytics-core:2.3.0 
| | \--- io.fabric.sdk.android:fabric:1.3.1 
| +--- io.fabric.sdk.android:fabric:1.3.1 
| \--- com.crashlytics.sdk.android:beta:1.1.2 
|   \--- io.fabric.sdk.android:fabric:1.2.0 -> 1.3.1 
+--- com.greenhalolabs:emailautocompletetextview:1.3.0 
+--- com.facebook.android:facebook-android-sdk:4.2.0 
| \--- com.parse.bolts:bolts-android:1.2.0 
+--- com.android.support:cardview-v7:23.1.1 
+--- com.jakewharton.hugo:hugo-runtime:1.2.0 
| +--- com.jakewharton.hugo:hugo-annotations:1.2.0 -> 1.2.1 
| \--- org.aspectj:aspectjrt:1.8.5 
+--- joda-time:joda-time:2.0 
+--- io.keen:keen-client-api-android:2.1.2 
+--- com.googlecode.libphonenumber:libphonenumber:6.3.1 
+--- net.simonvt.menudrawer:menudrawer:3.0.6 
+--- com.squareup:otto:1.3.0 
+--- com.google.android.gms:play-services-base:8.4.0 
| \--- com.google.android.gms:play-services-basement:8.4.0 
+--- com.google.android.gms:play-services-analytics:8.4.0 
+--- com.google.android.gms:play-services-gcm:8.4.0 
| \--- com.google.android.gms:play-services-measurement:8.4.0 
+--- com.jeremyfeinstein.slidingmenu:library:1.3 
+--- com.android.support:support-v4:23.1.1 
| \--- com.android.support:support-annotations:23.1.1 
+--- com.jakewharton.timber:timber:3.1.0 
+--- com.viewpagerindicator:library:2.4.1 
+--- com.ouralabs:ouralabs:2.7.0 
+--- com.android.support.test.espresso:espresso-idling-resource:2.2.1 
+--- project :domain 
| \--- joda-time:joda-time:2.0 
\--- project :remote 
    +--- com.squareup.retrofit:retrofit:1.6.0 
    | \--- com.google.code.gson:gson:2.2.4 
    +--- com.squareup.okhttp:okhttp:2.4.0 
    | \--- com.squareup.okio:okio:1.4.0 
    \--- com.squareup.okhttp:okhttp-urlconnection:2.4.0 
  1. मैं भी multiDexEnabled true के बारे में पढ़ा है, लेकिन मुझे यकीन है कि मैं तरीकों सीमा से अधिक नहीं था हूँ। यह मुद्दा तत्काल और किसी भी पुस्तकालय को जोड़ने के बिना दिखाई दिया। मैं भी कोड के पुराने उत्पादन संस्करणों को इकट्ठा नहीं कर सकता। वे उत्पादन में हैं और पूरी तरह से संकलित हैं।

मॉड्यूल के build.gradle:

dependencies { 
    apply plugin: 'idea' 

    compile "com.michaelpardo:activeandroid:${rootProject.ext.activeandroid}" 
    compile(group: 'com.google.code.findbugs', name: 'annotations', version: "${rootProject.ext.findbugs}") { 
     exclude(group: 'net.jcip', module: 'jcip-annotations') 
    } 
    compile(group: 'com.android.support', name: 'appcompat-v7', version: "${rootProject.ext.supportv4}") { 
     exclude(group: 'com.android.support', module: 'support-v4') 
    } 
    compile(group: 'com.crashlytics.sdk.android', name: 'crashlytics', version: "${rootProject.ext.crashlytics}") { 
     exclude(group: 'com.crashlytics.sdk.android', module: 'answers') 
    } 
    compile "com.greenhalolabs:emailautocompletetextview:${rootProject.ext.emailautocomplete}" 
    compile(group: 'com.facebook.android', name: 'facebook-android-sdk', version: "${rootProject.ext.facebook}") { 
     exclude(group: 'com.android.support', module: 'support-v4') 
    } 
    compile "com.android.support:cardview-v7:${rootProject.ext.supportv4}" 
    compile "com.jakewharton.hugo:hugo-runtime:${rootProject.ext.hugo}" 
    compile "joda-time:joda-time:${rootProject.ext.jodatime}" 
    compile "io.keen:keen-client-api-android:${rootProject.ext.keen}" 
    compile "com.googlecode.libphonenumber:libphonenumber:${rootProject.ext.libphonenumber}" 
    compile "net.simonvt.menudrawer:menudrawer:${rootProject.ext.menudrawer}" 
    compile "com.squareup:otto:${rootProject.ext.otto}" 
    compile(group: 'com.google.android.gms', name: 'play-services-base', version: "${rootProject.ext.playservices}") { 
     exclude(group: 'com.android.support', module: 'support-v4') 
    } 
    compile(group: 'com.google.android.gms', name: 'play-services-analytics', version: "${rootProject.ext.playservices}") { 
     exclude(group: 'com.google.android.gms', module: 'play-services-basement') 
    } 
    compile(group: 'com.google.android.gms', name: 'play-services-gcm', version: "${rootProject.ext.playservices}") { 
     exclude(group: 'com.google.android.gms', module: 'play-services-base') 
     exclude(group: 'com.google.android.gms', module: 'play-services-basement') 
    } 
    compile "com.jeremyfeinstein.slidingmenu:library:${rootProject.ext.slidingmenu}" 
    compile "com.android.support:support-v4:${rootProject.ext.supportv4}" 
    compile "com.jakewharton.timber:timber:${rootProject.ext.timber}" 
    compile "com.viewpagerindicator:library:${rootProject.ext.viewpagerindicator}" 
    compile "com.ouralabs:ouralabs:${rootProject.ext.ouralabs}" 
    compile "com.android.support.test.espresso:espresso-idling-resource:$rootProject.ext.espressoVersion" 

    compile project(':domain') 
    compile(project(':remote')) { 
     exclude module: 'domain' 
    } 

    // Local Unit testing 
    testCompile "junit:junit:$rootProject.ext.junit" 
    testCompile "org.mockito:mockito-all:$rootProject.ext.mockitoVersion" 
    testCompile "org.hamcrest:hamcrest-all:$rootProject.ext.hamcrestVersion" 

    // Instrumentation Testing 
    androidTestCompile "com.android.support.test.espresso:espresso-core:$rootProject.ext.espressoVersion" 
    androidTestCompile "com.android.support.test.espresso:espresso-contrib:$rootProject.ext.espressoVersion" 
    androidTestCompile "com.android.support.test.espresso:espresso-intents:$rootProject.ext.espressoVersion" 
    androidTestCompile "com.android.support.test.uiautomator:uiautomator-v18:$rootProject.ext.uiautomator" 
    androidTestCompile "com.android.support.test:runner:$rootProject.ext.runnerVersion" 
    androidTestCompile "com.android.support.test:rules:$rootProject.ext.runnerVersion" 
    androidTestCompile "org.mockito:mockito-core:$rootProject.ext.mockitoVersion" 
    androidTestCompile "com.google.dexmaker:dexmaker:$rootProject.ext.dexmaker" 
    androidTestCompile "com.google.dexmaker:dexmaker-mockito:$rootProject.ext.dexmaker" 
} 

अद्यतन

मैं GuardedBy के लिए परियोजना की जाँच की। क्या यह नकल की तरह दिखता है?

enter image description here

+0

ऐसा इसलिए होता है क्योंकि आप अधिक नेट/jcip/annotations/संरक्षित कक्षाओं को जोड़ रहे हैं। अपनी जार फ़ाइलों की जांच करें। –

+0

@ गैब्रिएल मारियोट्टी लेकिन इस डुप्लिकेशन को कैसे बाहर निकालना है? क्या आप एक उत्तर लिख सकते हैं? – Val

+0

मैं आपकी समस्या को समझने की कोशिश कर रहा हूं। सबसे पहले जांच करें कि क्या आप इन जारों का उपयोग libs फ़ोल्डर में कर रहे हैं या यदि आप उन्हें अन्य पुस्तकालयों से प्राप्त कर रहे हैं। समस्या यह हो सकती है कि आप एक ही कक्षा के विभिन्न संस्करण का उपयोग कर रहे हैं। –

उत्तर

1

लगता hugo-annotations की तरह दो बार शामिल किया गया है। यह hugo-runtime की निर्भरता है और कहीं और से जोड़ा गया है। के बाद से त्रुटि के कारण JSR पुस्तकालय findbugs निर्भरता से बाहर करना पड़ सकता है है hugo-runtime

compile("com.jakewharton.hugo:hugo-runtime:${rootProject.ext.hugo}") { 
    exclude(group: 'com.jakewharton.hugo' module: 'hugo-annotations') 
} 

भी से बाहर करने की कोशिश करो।

compile(group: 'com.google.code.findbugs', name: 'annotations', version: "${rootProject.ext.findbugs}") { 
    exclude(group: 'net.jcip', module: 'jcip-annotations') 
    exclude(group: 'com.google.code.findbugs', module: 'jsr305') 
} 

संपादित करें:

वहाँ एक परमाणु विकल्प यदि आप वास्तव में यह नहीं मिल रहा है, लेकिन मुझे यकीन है कि अगर यह कुछ और तोड़ने या सबसे अच्छा अभ्यास है होता नहीं हूँ। यह क्लासपाथ से पूरी तरह से jsr305 हटा देता है।

dependencies { 
    ... 
} 
configurations.all*.exclude module: 'jsr305' 
+0

दुर्भाग्यवश, मेरे पास एक ही अपवाद है। जवाब के लिए धन्यवाद। – Val

+0

आप संपादन का प्रयास कर सकते हैं लेकिन टूलबिंग पर प्रतिकूल प्रभाव पड़ सकता है जब findbugs चलाता है – JBirdVegas

0

अपनी जार फ़ाइलों की जांच करें। आप प्रोजेक्ट एक्सप्लोरर में फ़ाइलों का विस्तार कर सकते हैं। यदि इसमें अनावश्यक पथ और BuildConfig है, तो DexException होना चाहिए।

संबंधित मुद्दे

 संबंधित मुद्दे