मैं अपनी परियोजना के निर्माण/चलाने के दौरान अचानक इस समस्या में भाग रहा हूं।बिल्ड टूल्स 21.1.2 - अप्रत्याशित टॉप-लेवल एक्सेप्शन
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/aidanfollestad/Documents/android-sdk/build-tools/21.1.2/dx --dex --no-optimize --output /Users/aidanfollestad/Android Projects/Impression/app/build/intermediates/dex/debug --input-list=/Users/aidanfollestad/Android Projects/Impression/app/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
मेरे Gradle फ़ाइल इस में शामिल हैं:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.14.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'versionPlugin'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.afollestad.impression"
minSdkVersion 16
targetSdkVersion 21
versionCode 19
versionName "0.7.0"
}
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.koushikdutta.ion:ion:2.0.+'
compile 'com.github.chrisbanes.photoview:library:1.2.+'
compile 'com.afollestad:material-dialogs:0.4.5'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.google.api-client:google-api-client:1.18.0-rc'
compile 'com.google.api-client:google-api-client-android:1.18.0-rc'
compile 'com.google.api-client:google-api-client-gson:1.18.0-rc'
compile 'com.google.apis:google-api-services-drive:v2-rev152-1.19.0'
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
}
versionPlugin{
buildTypesMatcher = 'release'
supportBuildNumber = false
fileNameFormat = '$appPkg-v$versionName-$versionCode'
}
मेरे सामग्री संवाद पुस्तकालय संदर्भ केवल AppCompat-v7, एक ही संस्करण इस Gradle फ़ाइल को संदर्भित किया गया है। मेरे libs फ़ोल्डर में मेरे पास कोई JAR नहीं है जिसे मैं संदर्भित कर रहा हूं। मुझे नहीं पता कि पुस्तकालय एक दूसरे के साथ हस्तक्षेप कर रहे हैं (Play Services और AppCompat की संभावना के अलावा?)। कोई विचार या समाधान?
मैंने समर्थन पुस्तकालय (https://github.com/koush/ion/blob/master/ion/build.gradle#L17) के आयन संदर्भ v4 को देखा, शायद यह AppCompat में हस्तक्षेप कर सकता है?
@ स्कॉट-बार्टा यह एक डुप्लिकेट नहीं है, कि अन्य जवाब इस मुद्दे को हल नहीं करता है। – afollestad
मैंने इसे फिर से खोल दिया, लेकिन यह वास्तव में एक डुप्लिकेट है - आपके पास एक डीएक्स फ़ाइल के लिए बहुत सी विधियां हैं। यह टक्कर नहीं है। –
यदि आप Google Play सेवाओं के हर हिस्से का उपयोग नहीं कर रहे हैं, तो [विभाजन निर्भरता] (https://developer.android.com/google/play-services/setup.html#split) का उपयोग करने पर विचार करें जो आपको केवल निर्भर करने की अनुमति देता है Google Play सेवाओं के उन हिस्सों पर जिन्हें आपको वास्तव में आवश्यकता है। – ianhanniballake