Android Studio: ошибка: не удалось выполнить задачу «: app: dexDebug»

Я впервые использую Android Studio и получил следующую ошибку после импорта проекта (ранее это был проект eclipse, в котором у меня тоже были проблемы).

Вот приведенная информация:

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
  Error Code:
    2
  Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        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)

:app:dexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    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)


 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug --input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt
  Error Code:
    2
  Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        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)



* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Приложение build.gradle таково:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.myapp.test"
        minSdkVersion 11
        targetSdkVersion 14
    }

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

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/google-play-services.jar')
    compile files('libs/httpcore-4.3.2.jar')
    compile files('libs/httpmime-4.3.4.jar')
}

И проект build.gradle таков:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

Вы хоть представляете, в чем может быть проблема и как ее решить? Хорошее объяснение проблемы также было бы полезно, поскольку я новичок в Android Studio. Заранее спасибо :)


person dephinera    schedule 05.01.2015    source источник
comment
возможный дубликат Несколько файлов dex определяют Landroid/support/v4/accessibilityservice /AccessibilityServiceInfoCompat   -  person Divers    schedule 06.01.2015


Ответы (8)


compile 'com.google.android.gms:play-services:+'
compile files('libs/google-play-services.jar')

Я думаю, вы должны удалить 1 из этих строк.

person Divers    schedule 05.01.2015
comment
Это устранило эту проблему, спасибо, но теперь у меня есть это: Дубликаты файлов, скопированные в APK META-INF/LICENSE File 1: /home/crash-id/AndroidstudioProjects/LocalSin/app/libs/httpcore-4.3.2.jar File 2: /home/crash-id/AndroidstudioProjects/LocalSin/app/libs/httpcore-4.3.2.jar - person dephinera; 06.01.2015
comment
Не берите в голову. Исправлено, добавив исключить 'META-INF/LICENSE' в packageOptions {..} - person dephinera; 06.01.2015

cd android/ && ./gradlew clean && cd .. && react-native run-android

person diogopalhais    schedule 26.09.2016
comment
Пожалуйста, добавьте объяснение своего намерения или поместите этот текст в качестве комментария. - person Reporter; 26.09.2016
comment
Я голосую за, потому что это работает, но я согласен, что небольшое объяснение было бы полезно. Спасибо. - person Logic Artist; 28.11.2016
comment
Это сработало для меня. Если вы используете React Native и столкнулись с этим или Execution failed for task ':app:dexProductionDebug', то это, скорее всего, решит вашу проблему. - person DeanMWake; 11.04.2017

У меня была ошибка Android Studio: сбой выполнения для задачи ': app: dexDebug', которую я решаю, установив для multiDexEnabled значение true

defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}

В моем проекте было использовано слишком много библиотек, поэтому я превышаю предел dex методов в 65 000, установленный Android. nofollow">http://developer.android.com/tools/building/multidex.html

person Netero    schedule 24.12.2015

не включать всю библиотеку gms:
compile 'com.google.android.gms:play-services:+'

Вместо этого просто используйте необходимые компоненты следующим образом:

compile 'com.google.android.gms:play-services-ads:8.3.0'
compile 'com.google.android.gms:play-services-analytics:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'
person bskim45    schedule 21.11.2015

Это происходит потому, что вы дублируете зависимость библиотеки внутри приложения build.gradle в студии Android.

Android Studio автоматически добавляет зависимости для всех файлов в папке libs, используя

compile fileTree(dir: 'libs', include: ['*.jar'])

или в вашем конкретном случае зависимость добавляется с помощью

compile files('libs/google-play-services.jar')

^ Теперь, когда вы снова пытаетесь добавить зависимость, используя

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

вы получаете ошибку.



РЕШЕНИЕ

Удалите все повторяющиеся зависимости, добавленные в «app build.gradle», и все будет хорошо. В вашем случае удалите

compile 'com.google.android.gms:play-services:+'
person meain    schedule 09.08.2015

Убедитесь, что имена пакетов не дублируются в компилируемых проектах.

В @Drivers' answer указано, что в данном проекте не должно быть нескольких зависимостей с одинаковыми пространство имен. В приведенном выше случае библиотека Google Play Services была включена дважды, что вызвало конфликт имен пакетов.

То же самое может произойти с несколькими модулями (приложениями, библиотеками и т. д.) в одном проекте. Итак, убедитесь, что для каждого файла AndroidManifest.xml имя package уникально для всех модулей:

AndroidManifest.xml:

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="this.must.be.unique.across.modules">
person CJBS    schedule 27.05.2015

У меня был приведенный ниже код в файле gradle и такая же ошибка.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services-ads:8.3.0'
}

dependencies {
    compile 'com.android.support:design:23.+'
}
dependencies {
    compile 'com.android.support:design:23.+'
}
dependencies {
    compile 'com.android.support:design:23.+'
}

Удалил эти последние 3 зависимости, и теперь все работает!

person Shree Harsha S    schedule 25.02.2016

удалить все файлы в c:\users\<username>\.gradle\caches\transforms-2\files-2.1\

Наслаждайтесь командой flutter run

person raj eru    schedule 29.05.2020