Não foi possível mesclar dex

307

Eu tenho o Android Studio Beta. Criei um novo projeto para compilar meus módulos antigos, mas quando tentei iniciar o aplicativo, ele não foi iniciado com a mensagem:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.

com.android.builder.dexing.DexArchiveMergerException: Não foi possível mesclar dex

Mas não sei como resolver esse erro. Eu pesquisei isso por horas, mas sem sucesso.

Meu projeto gradle:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta6'
        classpath "io.realm:realm-gradle-plugin:3.7.1"
        classpath 'com.google.gms:google-services:3.1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Meu aplicativo gradle:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "parad0x.sk.onlyforyou"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }
    compileOptions {
        targetCompatibility 1.7
        sourceCompatibility 1.7
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    lintOptions {
        checkReleaseBuilds false
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    //noinspection GradleCompatible
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    compile project(path: ':loginregisterview')


}

E meu módulo gradle:

    apply plugin: 'com.android.library'
apply plugin: 'realm-android'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.0.2'
    compile 'com.android.support:support-v4:26.1.0'
    compile 'com.github.bumptech.glide:glide:4.0.0'
    testCompile 'junit:junit:4.12'
    compile project(path: ':parser')

}

Meu segundo módulo:

     apply plugin: 'com.android.library'
apply plugin: 'realm-android'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    realm {
        syncEnabled = true
    }
    useLibrary 'org.apache.http.legacy'

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile 'junit:junit:4.12'
    //  compile 'com.android.support:appcompat-v7:23.1.0'

    //   compile 'com.fasterxml.jackson.core:jackson-core:2.9.0'
 //   compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
 //   compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
    compile 'com.google.code.gson:gson:2.6.2'
}

____________ achando_________

Quando não importei o segundo módulo (analisador), o aplicativo não travou no dex, mas quando o módulo não foi importado, o aplicativo não funcionou. : D: D

Parad0X
fonte
6
Se alguém tiver o mesmo problema na versão estável do Android Studio 3.0, recomendo vivamente que reveja a resposta stackoverflow.com/questions/46949761/… e veja se isso pode ajudá-lo.
Bhavesh Patadiya
1
Eu tive o mesmo problema e segui todos os métodos mencionados nesta página, mas não me ajudaram, então vou para o gradle e pressiono o cursor em cada biblioteca para verificar se a nova versão está disponível ou não. quem tem nova versão então eu atualizo, sincronizo gradle e corro. funcionou.
Shahzad Afridi

Respostas:

293

Eu tive o mesmo problema ao atualizar de com.google.android.gms:play-services:11.2.2para com.google.android.gms:play-services:11.4.0. Isso resolveu para mim:

  1. limpar \ limpo
  2. reconstruir
Zohidjon Akbarov
fonte
Você só atrasa o problema real com essa solução. provavelmente a versão 11.4.0 contém menos métodos. Veja minha resposta abaixo. você vai tenho esse erro na próxima dependência você vai adicionar eu acho
itzhar
2
Isto resolve o meu problema, onde multiDexEnabled truesó não o fez
Yuri Brigance
28
o mesmo problema com com.google.android.gms: play-services-location: 11.6.0 ... esta não é uma solução válida
issamux 19/11/17
3
Esta solução funcionou para mim quando tive um problema de compatibilidade usando as bibliotecas do Google Analytics. No AS, visualize o painel do navegador do projeto android como "Projeto", você verá "Bibliotecas externas". Se você expandir as bibliotecas externas, verá todos os jarros e módulos usados ​​para compilar o projeto. Isso deve ajudá-lo a identificar combinações de módulos incompatíveis.
angryITguy
3
Se o código acima não funcionar no caso de "compileSdkVersion 26", tente o seguinte: vá para - build.gradle (Módulo: app) - adicione "multiDexEnabled true" na categoria defaultConfig e na última etapa Vá para Arquivo | Configurações | Compilação, Execução, Implantação | Instantânea Run e tentar Activar / Desactivar
Sumit Saxena
325

Eu tentei todas as opções acima e nenhuma delas ajuda. finalmente, acho esse trabalho para mim:

app / build.gradle:

android {
    defaultConfig {
       multiDexEnabled true
    }
}
itzhar
fonte
11
Obrigado. Acho que o problema foi que a maioria das respostas não inclui a inclusão de arquivos JAR de outras fontes que você não pode reconstruir. O multiDex parece permitir que o código incompatível seja combinado.
Brendon Whateley
2
Esta solução funcionou para mim, mas, além disso, eu tinha para permitir multidex explicitamente API <= 21 developer.android.com/studio/build/multidex.html
hamou92
2
Apesar de ser mais relevante do que a resposta aceita Ainda fico "Não é possível dex merge" mensagem
John
13
Não funcionou para mim. Com essa alteração, obtive um erro diferente: Falha na execução da tarefa ': app: transformClassesWithMultidexlistForDebug
Atul 17/18
1
Sim, por cinco horas eu estava morando com respostas totalmente diferentes. Mas de alguma forma eu percebi que era um problema da Multidex e cheguei aqui. Eu era verdade. Obrigado man
sud007
59

Preste atenção aos avisos!

Às vezes, você só precisa eliminar os avisos e o erro desaparece automaticamente. Veja abaixo caso especial:


Eu tinha essas duas dependências no meu build.gradlearquivo no nível do módulo :

implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'

e o Studio avisaram ( além do problema de fusão dex ):

Todas as com.android.supportbibliotecas devem usar exatamente a mesma especificação de versão (misturar versões pode levar a falhas no tempo de execução). Encontrados versões 27.0.2, 21.0.3. Exemplos incluem com.android.support:animated-vector-drawable:27.0.2ecom.android.support:support-v4:21.0.3

Portanto, eu determinei explicitamente a versãocom.android.support:support-v4 (veja aqui para obter detalhes) e os dois problemas (o aviso e o relacionado à fusão de dex) resolvidos :

implementation 'com.android.support:support-v4:27.0.2'  // Added this line (according to above warning message)
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:recyclerview-v7:27.0.2'

Veja os comentários abaixo para outras situações semelhantes.

Mir-Ismaili
fonte
1
Obrigado, isso resolveu o problema para mim. Foi originalmente causado pela adição de eu.inloop: androidviewmodel: 1.3.4
lsrom
1
Exatamente, eu só queria que o erro poderia ter sido mais preciso
Amin Keshavarzian
1
Muito obrigado. Eu tive o mesmo problema. Eu estava usando a v26, atualizado para o sdk 27 ​​e resolvi o problema.
9119 Johnny
2
Essa deve ser a resposta correta. Minhas construções pararam de funcionar depois de adicionar uma biblioteca (airbnb / epóxi) à qual dependia support:design:26.1.0, e eu ainda não tinha essa dependência. A versão de minhas outras bibliotecas de suporte era 27.1.0. Depois de adicionar support:designdependência à 27.1.0versão, meu problema foi resolvido.
Alashow 18/0318
2
Obrigado. Você salva meu dia.
Nithinjith 23/03
37

No meu caso, infelizmente, nem as soluções de Michel nem de Suragch funcionaram para mim.

Então, resolvi esse problema fazendo o seguinte:

No gradle: 3.0, a configuração de compilação agora está obsoleta e deve ser substituída pela implementação ou API . Para mais informações, você pode ler aqui. Você pode ler os documentos oficiais da Gradle Build Tool

A configuração de compilação ainda existe, mas não deve ser usada, pois não oferece as garantias fornecidas pelas configurações de API e implementação.

é melhor usar a implementação ou a API em vez de compilar

basta substituir compilar com implementação , debugCompile com debugImplementation , testCompile com testImplementation e androidtestcompile com androidTestImplementation

Por exemplo: em vez disso

compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'

use assim

implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'

Depois disso

  • Exclua a pasta .gradle dentro do seu projeto (observe que, para ver .gradle, você precisa mudar para a visualização "Projeto" no navegador no canto superior esquerdo)
  • Exclua todas as pastas de compilação e o cache de gradle.
  • No menu Build, pressione o botão Clean Project .
  • Após a conclusão da tarefa, pressione o botão Rebuild Project no menu Build.

Espero que ajude!

Rei das Massas
fonte
2
Obrigado, tudo o que tive que fazer foi alterar a compilação para a implementação e ela foi criada com sucesso, não precisando concluir as outras etapas. A construção começou a falhar depois que eu atualizei o Facebook SDK
Shayno
2
Trabalhou para mim - idéias sobre o porquê?
5287 Alex
1
A pasta a ser excluída deve ser .gradlee não./gradle
Gary Bak
1
A única resposta que realmente funcionou para mim. Obrigado!
Michael Richardson
1
Obrigado, é a resposta mais legal. Deve estar no topo da pesquisa. Trabalhou para mim.
Danger
27
  1. Exclua o .gradlediretório

  2. Execute seu aplicativo novamente.

Notas

  • O .gradlediretório está na pasta raiz do seu projeto. (Talvez seja necessário mostrar os arquivos ocultos primeiro.)
  • Eu tenho que fazer isso sempre que atualizar um módulo de dependência usando o Android 3.0. (Versões mais recentes do Android Studio 3 parecem ter resolvido o problema.)
Suragch
fonte
4
isso me ajudou quando eu também fiz um Invalidate Cache e reiniciei
Vasili Fedotov
Eu estava em descrença quando este fixo meu problema .. i tentou atualizar tudo, removendo todas as palavras-chave de compilação, atualizando algumas das versões ILB suspeitos .. Quando eu finalmente fez isso, ele trabalhou ..
hanzolo
Você salvou minha vida! Obrigado
Masterfego
24

Excluir .gradlecomo sugerido por Suragch não foi suficiente para mim. Além disso, eu tive que executar um Build > Clean Project.

Observe que, para ver .gradle, você precisa mudar para a visualização "Projeto" no navegador no canto superior esquerdo:

Mudar para a vista de projeto

Michel Jung
fonte
23

Eu tentei todas as outras soluções, mas ninguém trabalhou para mim. No final, resolvi usando a mesma versão de dependência editando build.gradle. Eu acho que esse problema ocorre ao adicionar uma biblioteca ao gradle que usa uma versão de dependência diferente do suporte ou das bibliotecas do google.

Adicione o seguinte código ao seu arquivo de construção gradle. Então cleane rebuildprojeto.

ps: essa era a solução antiga para mim, então você deve usar a versão atualizada das seguintes bibliotecas.

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '26.1.0'
        }
    } else if (requested.group == "com.google.android.gms") {
        details.useVersion '11.8.0'
        } else if (requested.group == "com.google.firebase") {
            details.useVersion '11.8.0'
          }
      }
}
Ali Gürelli
fonte
5
tentei todas as outras soluções, no final, apenas isso ajudou: /
Ante
@ Alili Gurelli Muito obrigado, tentei muitas soluções, mas apenas este trabalho.
Bipin Bharti
Obrigado, mas para mim eu uso a versão details.useVersion '15 .0.0 '
Elsunhoty
Obrigado pela solução. O mesmo problema aconteceu comigo. google tocar e pagar foi 10.0.0 e descansar todas as libs estão em versão mais recente
R Mundial
Trabalhou sem problemas Graças
Sankalp
14

if (1. Tente limpar e reconstruir o trabalho), então bom

caso contrário, se (2. Tente remover o trabalho gradle), então bom

else-> 3. Tente adicionar grade.properties

android.enableD8 = false

else-> 4. Adicione multiDexEnabledtrue ao seu build.gradle

android {
    compileSdkVersion 26
    defaultConfig {
      ...
        minSdkVersion 15
        targetSdkVersion 26
        multiDexEnabled true
     ...
    }
}

e adicione a dependência

dependencies {
    compile 'com.android.support:multidex:1.0.1'}

Pode o primeiro funcionar para você e assim por diante, mas realmente depende da natureza do seu problema para mim, por exemplo

Recebi o erro depois de adicionar esta biblioteca

implementation 'com.jjoe64:graphview:4.2.2'

e depois descobri que tenho que verificar isso e preciso adicionar a mesma versão das bibliotecas de suporte. Então eu tenho que tentar outra versão

compile 'com.jjoe64:graphview:4.2.1'

e resolve o problema. Então preste atenção nisso.

DINA TAKLIT
fonte
3
A maneira mais útil para esse problema. Quero mencionar aqui que você pode usar o 'gradlew app: transformDexArchiveWithExternalLibsDexMergerForDebug --stacktrace' cmd para obter mais detalhes. Eu me salvei, descobri que tenho que ativar o multidex. Espero que seja útil.
panda
13

No meu caso, a questão foi por causa da biblioteca da sala:

compile 'android.arch.persistence.room:runtime:1.0.0-alpha1'

Alterando para:

compile 'android.arch.persistence.room:runtime:1.0.0'

trabalhou.

Shashi
fonte
Muito obrigado, isso me ajudou muito!
Phil
Tão feliz em encontrar esta resposta. Obrigado!
CallOfCode
12

Apenas para adicionar às soluções acima:

Verifique se você não possui dependências duplicadas apontando para versões diferentes delas, em vários locais (ou mesmo no mesmo arquivo).

desenvolvedor android
fonte
Eu acho que isso deve ser a primeira verificação antes de adicionar multiDexEnabled true e tentar outras respostas. Obrigado!
Aleksandr A
11

Oi eu tenho o mesmo problema tentei quase tudo. Então, finalmente resolvi após 6 horas de luta depurando tudo linha por linha.

classpath 'com.google.gms:google-services:3.0.0'

Google-services 3.0 Não suporta firebase com o Studio 3.0 com playServiceVersion: 11.6.0 ou menos.

implementation "com.google.firebase:firebase-messaging:$rootProject.ext.playServiceVersion"
implementation "com.google.firebase:firebase-core:$rootProject.ext.playServiceVersion"
implementation "com.firebase:firebase-jobdispatcher-with-gcm-dep:$rootProject.ext.jobdispatcherVersion"

Solução:

Eu tenho mudança serviços do Google para

classpath 'com.google.gms:google-services:3.1.1'

E suporta serviços de base de firmas.

Espero que alguém economize seu tempo.

Saveen
fonte
1
Eu tenho o mesmo problema que eu estava usando playServiceVersion como a implementação 11.4.0 "com.google.firebase: firebase-core: 11.4.0" altere para implementação "com.google.firebase: firebase-core: 11.6.2" corrigiu meu questão . Portanto, verifique a dependência da versão para diferentes lib
durgeshtrivedi
9
  1. Habilitar

    defaultConfig {multiDexEnabled true}

  2. Se o passo 1 não funcionar,

    Vá para a estrutura do projeto e descubra a biblioteca externa que está usando uma versão diferente. Clique duas vezes nele e exclua seu arquivo jar. Feche o projeto e abra novamente o android studio reconstruirá o projeto. O problema deveria ter desaparecido.

Abhisek Mallick
fonte
+1 - Eu tinha o suporte lib, rxjava e uma dependência de terceiros (13k linhas). Meus olhos quase saltaram quando vi o método contar.
21418 snodnipper
6

Uma das possibilidades é: a presença da mesma biblioteca, mas com versões diferentes nas dependências .

Eu tive esse problema com as seguintes linhas no arquivo gradle:

  • compile fileTree(include: ['*.jar'], dir: 'libs')
  • compile 'com.google.code.gson:gson:2.8.2'

A biblioteca gson estava no meu diretório libs, mas com uma versão anterior. Eu apaguei o gson-2.3.1.jardiretório libs e tudo voltou ao normal.

Philippe Grain
fonte
remoção compile fileTree(include: ['*.jar'], dir: 'libs')fixo para mim também .. obrigado (y)
Dinuka Salwathura
5

Se esse erro aparecer após você incluir o suporte ao kotlin e nenhuma das outras soluções funcionar, tente alterar a dependência do módulo do aplicativo build.gradlepara o kotlin :

implementation ("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version") {
    exclude group: 'org.jetbrains', module: 'annotations'
}

Isso funciona para mim no Android Studio 3.0 Beta 6. Consulte esta resposta para obter mais explicações.

aksh1618
fonte
Sim, parece que a introdução do Kotlin pode interromper a construção se as anotações não forem excluídas.
Stoycho Andreev 23/02
Obrigado. Essa foi a solução para mim. Eu luto 3 dias para identificar meu problema.
Naveen Kumar M
Tente atualizar para a versão 1.2.30 do plugin Kotlin (recém-lançado). Agora, o Instant Run também pode ser ativado novamente!
KTCO 17/0318
5

[NÃO É POSSÍVEL MERGE DEX RESOLVIDO] Após horas transbordando a pilha, resolvi o "UNABLE TO MERGE DEX ERRO"

  1. Atualize todas as linhas com.android.support no seu gradle para a v27.1.0

Causa: o Android atualizou as bibliotecas de suporte para a v27.1.0, portanto, você deve alterar todas as linhas de suporte do Android no seu arquivo gradle para 27.1.0 de 26.1.0

  1. Verifique se a seção repositórios inclui uma seção maven com o terminal " https://maven.google.com ". Por exemplo:

    todos os projetos {repositórios {jcenter () maven {url " https://maven.google.com "}}}

Causa: - O Android não pode atualizar as bibliotecas de suporte no gerenciador do SDK e agora usa maven.google.com para atualizar. Portanto, você deve incluir isso para usar as bibliotecas de suporte 27.1.0

Após a alteração da versão: 1. Projeto limpo 2. Projeto de reconstrução

Taha Ali
fonte
4

adicione comandos abaixo:

android {
...

    dexOptions {

        jumboMode true
        javaMaxHeapSize "4g"

    }
}
zyc zyc
fonte
4

Instalando o Google Play Services (versão mais recente) + incluindo

android {
    defaultConfig {
        multiDexEnabled true
        }
}

no build.gradle resolveu o problema para mim, certifique-se de limpar e reconstruir o projeto!

Harmandeep Gill
fonte
3

No meu caso, foi o gson-2.8.1.jar que adicionei à pasta libs do projeto. Mas a referência já estava lá pelo SDK. Portanto, não foi necessário adicionar o gson-2.8.1.jar à pasta libs.

Quando o tirei, o projeto gson-2.8.1.jar é compilado sem esse erro.

Portanto, tente revisar a pasta libs e as dependências .

Desenvolvedor
fonte
3

Eu concordo com Chris-Jr. Se você estiver usando o Firebase para incorporar seus anúncios da AdMob (ou mesmo se não estiver), o play-services-analytics inclui os play-services-ads, mesmo que você não o adicione como dependência. O Google obviamente cometeu um erro no lançamento da versão 11.4.0, pois a análise inclui a versão 10.0.1 dos anúncios, e não a 11.4.0 (a dica do mouse sobre a gradle mostra isso).

Adicionei manualmente a compilação 'com.google.android.gms: play-services-ads: 11.4.0' na parte superior que funcionou, mas somente depois que desativei o Instant Run: http://stackoverflow.com/a/35169716/530047

Portanto, é regredir para 10.0.1 ou adicionar os anúncios e desativar a Execução instantânea. Foi o que descobri se isso ajuda.

Jonathan
fonte
O OP mencionou o Play Services?
IgorGanapolsky
A resposta aprovada foi. Se esse problema está aparecendo sem esse cenário, não sei!
26417 Jonathan
2

Encontrei o mesmo problema e encontrei o verdadeiro motivo do meu caso. Anteriormente, eu também tentei todas as respostas anteriores novamente, mas isso não resolveu o problema. Eu tenho dois módulos no meu projeto de aplicativo de desgaste e o build.gradle da seguinte maneira:

use o build.gradle do módulo de desgaste:

implementation project(':common')
implementation files('libs/farmer-motion-1.0.jar')

build.gradle do módulo comum:

implementation files('libs/farmer-motion-1.0.jar')

Antes da atualização para o gradle 3.x, 'implementação' é tudo 'compilado'.

Eu corro gradlew com a opção --stacktrace para obter o rastreamento da pilha; basta clicar na janela do console do gradle quando esse problema surgir. E constatou que a dependência do pacote jar foi repetida:

Caused by: com.android.dex.DexException: Multiple dex files define Lcom/farmer/motion/common/data/pojo/SportSummary$2;

Classe SportSummary no pacote farmer-motion-1.0.jar, depois de ler o guia oficial de migração , alterei meu build.gradle para o seguinte:

use o build.gradle do módulo de desgaste:

implementation project(':common')
// delete dependency implementation files('libs/farmer-motion-1.0.jar')

módulo comum build.gradle:

api files('libs/farmer-motion-1.0.jar') // change implementation to api

Agora, o módulo wear terá a dependência da exportação do farmer-motion-1.0.jar pelo módulo comum. Se não houver dependência no pacote jar durante o tempo de execução , a dependência de ' implementação ' do pacote jar também poderá ser alterada para 'compileOnly' .

FarmerLi
fonte
2

Eu também tive o problema.

Consegui resolver alterando compileSdkVersione targetSdkVersionpara a versão mais recente.

akhil as
fonte
2

Para o nosso projeto, adicionamos acidentalmente o mesmo jar duas vezes com nome diferente. A remoção de um deles resolveu o problema.

Ifta
fonte
Isso resolveu meu problema. Eu estava construindo um projeto de biblioteca interna do Android e, em sua libspasta, eu tinha dois arquivos jar, um dos quais é apenas um backup do outro, mas com um nome de arquivo diferente.
hopia
2

Talvez esse não seja o seu problema, mas recebi esse erro quando incluí acidentalmente duas bibliotecas idênticas (mas com nomes diferentes) na seção dependências {} do projeto.

DontPanic
fonte
1

Para mim, estava atualizando o sistema de mensagens do firebase em app \ build.gradle:

compile 'com.google.firebase:firebase-messaging:10.0.1'

para

compile 'com.google.firebase:firebase-messaging:11.4.2'
milamber
fonte
1

Uma das possíveis causas principais: dependências transitórias duplicadas que não foram tratadas adequadamente pela importação de projetos com vários módulos do Android Studio. Verifique sua lista e remova-a. Para mim, a correção foi literalmente esta:

--- a/project/module/build.gradle
+++ b/project/module/build.gradle
@@ -21,5 +21,4 @@ android {
 dependencies {
     implementation project(':upstream-dependency-project')
     implementation 'com.android.support:support-v4:18.0.0'
-    implementation files('libs/slf4j-android-1.6.1-RC1.jar')
 }
vt.
fonte
1

Eu descubro a razão deste problema para o meu projeto. Fui adicionada uma dependência duas vezes no build.gradle . Uma vez adicionando dependência e outra vez adicionando dependência jar:

compile 'org.achartengine: achartengine: 1.2.0'
...
arquivos de implementação ('../ achartengine-1.2.0.jar')

depois remova o problema da primeira linha resolvido.

Mansour
fonte
1

Caso as principais respostas não tenham funcionado para você, seu problema pode ser o fato de você ter várias dependências que dependem da mesma biblioteca.

Aqui estão algumas dicas de depuração. Neste código de exemplo, com.google.code.findbugs:jsr305:3.0.0é a biblioteca incorreta.

Sempre limpe e reconstrua toda vez que você modificar para verificar sua solução!

  1. Crie com a --stacktracebandeira ativada para obter mais detalhes. Ele reclamará de uma classe, o Google nessa classe para encontrar a biblioteca. Veja como você pode configurar o Android studio para executar sempre o gradle com a --stacktracebandeira .

  2. Dê uma olhada no Gradle Console no Android Studio View > Tool Windows > Gradle Consoleapós uma compilação

  3. Verifique dependências repetidas executando ./gradlew -q app:dependencies. Você pode executar isso novamente sempre que modificar seu build.gradle.

  4. No build.gradle,

    android {
            ...
            configurations.all {
                resolutionStrategy {
                    // Force a particular version of the library 
                    // across all dependencies that have that dependency
                    force 'com.google.code.findbugs:jsr305:3.0.0'
                }
            }
    }
  5. No build.gradle,

    dependencies {
        ...
        implementation('com.google.auth:google-auth-library-oauth2-http:0.6.0') {
            // Exclude the library for this particular import
            exclude group: 'com.google.code.findbugs'
        }
    }
  6. No build.gradle,

    android {
        ...
        configurations.all {
            resolutionStrategy {
                // Completely exclude the library. Works for transitive
                // dependencies.
                exclude group: 'com.google.code.findbugs'
            }
        }
    }
  7. Se algumas de suas dependências estiverem em arquivos jar, abra-os e verifique se há algum nome de classe conflitante. Se eles forem, você provavelmente terá que re-construir os frascos com novos nomes de classe ou olhar para sombreamento .

Um pouco mais de leitura de fundo:

J Wang
fonte
1
android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}
Eben Watts
fonte
2
Você poderia elaborar?
SG7
Eu também tive o mesmo problema, mas percebi que resolvia o meu problema naquele momento, mas nas atualizações futuras, as coisas podem realmente mudar.
Eben Watts
1

No meu caso, uma biblioteca com esse problema, a biblioteca foi adicionada com êxito ao projeto, mas quando executo o aplicativo, ele mostra esse erro. Portanto, se isso acontecer com você também, você pode ir ao github e verificar problemas ou levantar um novo problema. Se você não encontrar nenhuma solução em relação à biblioteca, sugiro que você a substitua.

Suraj Vaishnav
fonte