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. Спасибо заранее:)

Ответ 1

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

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

Ответ 2

cd android/& &./gradlew clean && cd.. && реактивный анкронд-андроид

Ответ 3

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

defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}

В моем проекте использовалось слишком много библиотеки, поэтому я превысил ограничение на DeX 65K, установленное Android для получения дополнительной информации: http://developer.android.com/tools/building/multidex.html

Ответ 4

не включать всю библиотеку 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'

Ответ 5

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

В ответе @Drivers указано, что в данном проекте не должно быть нескольких зависимостей, имеющих одно и то же пространство имен. В приведенном выше случае библиотека 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">

Ответ 6

Это происходит потому, что вы дублируете зависимость библиотеки внутри приложения 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:+'

Ответ 7

У меня был код ниже в файле 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 зависимостей и теперь работают!