INESPERADO EXCEÇÃO DE NÍVEL SUPERIOR : com.android.dex.DexException : Vários arquivos dex definir

? jghg02 @ | Original: StackOverFlow
---

Eu tenho um problema tentar usar um Google Play Services no meu App Android usando o Android Studio.

Já tentei de tudo e ainda não funciona .

Este é o erro .

Execution failed for task ':app:dexDebug'.

Obrigado. Cumprimentos.

---

Top 5 Responder

1iTapAndroid @

Seu google biblioteca serviços de jogo está sendo exportado a partir de outras dependências do seu projeto e, ao tempo de compilação o compilador dex fica confuso .

Se você estiver usando Gradle seguida, incluindo este em build.gradle do seu projeto deve excluir a biblioteca de suporte de serem exportados para o seu projeto principal.

apply plugin: 'android'
apply plugin: 'crashlytics'

/** Must exclude exported support jars from dependencies, or get dex duplicate class      error.
*  we're
**/
configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
    all*.exclude group: 'com.google.android.gms', module: 'play-services'
}

Se você estiver usando o sistema de estúdio de construção andoid . Em seguida, você deve ir em File -> estrutura do projeto e desativar - > módulos. Passe cada módulo o e clique na guia dependência, desmarque a coluna de exportação para para a biblioteca de apoio e Google Play biblioteca serviços.

Publicar comentários se você precisar de mais ajuda .

2Gene @

O erro ocorre quando você tem a mesma biblioteca / incluídos mais de uma vez nas dependências do seu build.gradle . Ok, vamos dizer que você tem uma estrutura App parecida com esta :

INESPERADO EXCEÇÃO DE NÍVEL SUPERIOR : com.android.dex.DexException : Vários arquivos dex definir

Então você tem o principal " app" e, em seguida, você tem um monte de sub- apps / módulos / bibliotecas . As bibliotecas são : 1 ) gene_test_library, 2 ) genes_nine_old_androids_library, & amp ; 3 ) swipe_list_view_library .

Meu nome é Gene, é por isso que há todas essas bibliotecas "gene" .

Dentro do build.gradle para " app", que eu tenho:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.0'

    compile project(':libraries:gene_test_library')
    //compile project(':libraries:genes_nine_old_androids_library')
    compile project(':libraries:swipe_list_view_library')
}

Dentro do build.gradle para gene_test_library, não tenho nada :

dependencies {
}

Dentro build.gradle para gene_nine_old_androids_library, eu tenho:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

Dentro build.gradle para swipe_list_view_library, eu tenho:

dependencies {
    compile 'com.nineoldandroids:library:2.4.0+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

Esta linha de código " compilar filetree ( dir : ' libs ', incluem: [' * .jar ']) " significa apenas " ei, olha dentro da pasta das libs ' dentro deste módulo para qualquer arquivo jar . Eu não tenho nada na pasta libs de qualquer um dos módulos que você pode ignorar essa linha de código .

Então, digamos que eu tire fora // compilar projeto (': bibliotecas : genes_nine_old_androids_library ' ) No build.gradle para o módulo " app" . Então gostaria de obter o " INESPERADO EXCEÇÃO DE NÍVEL SUPERIOR :" Erro . Por que é que?

INESPERADO EXCEÇÃO DE NÍVEL SUPERIOR : com.android.dex.DexException : Vários arquivos dex definir

Bem, escrevendo // compilar projeto (': bibliotecas : genes_nine_old_androids_library ' ) dentro do build.gradle para " app", é o mesmo que tomar as dependências de construção de módulo " genes_nine_old_androids_library " e colocá-lo lá . Então uncommenting o // compilar projeto (': bibliotecas : genes_nine_old_androids_library ' ) declaração, o build.gradle para o módulo " app" torna-se:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.0'

    compile project(':libraries:gene_test_library')
    ***compile fileTree(dir: 'libs', include: ['*.jar'])***
    ***compile 'com.android.support:appcompat-v7:21.0.0'***
    compile project(':libraries:swipe_list_view_library')
}

Observe como agora " compilar " com.android.support:appcompat-v7:21.0.0 ' " mostra -se 2x. É aí que o erro está vindo.