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
android
dex
android-studio-3.0
Parad0X
fonte
fonte
Respostas:
Eu tive o mesmo problema ao atualizar de
com.google.android.gms:play-services:11.2.2
paracom.google.android.gms:play-services:11.4.0
. Isso resolveu para mim:fonte
multiDexEnabled true
só não o fezEu tentei todas as opções acima e nenhuma delas ajuda. finalmente, acho esse trabalho para mim:
app / build.gradle:
fonte
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.gradle
arquivo no nível do módulo :e o Studio avisaram ( além do problema de fusão dex ):
Portanto, eu determinei explicitamente a versão
com.android.support:support-v4
(veja aqui para obter detalhes) e os dois problemas (o aviso e o relacionado à fusão de dex) resolvidos :Veja os comentários abaixo para outras situações semelhantes.
fonte
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 adicionarsupport:design
dependência à27.1.0
versão, meu problema foi resolvido.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
é 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
use assim
Depois disso
Espero que ajude!
fonte
.gradle
e não./gradle
Exclua o
.gradle
diretórioExecute seu aplicativo novamente.
Notas
.gradle
diretório está na pasta raiz do seu projeto. (Talvez seja necessário mostrar os arquivos ocultos primeiro.)fonte
Excluir
.gradle
como sugerido por Suragch não foi suficiente para mim. Além disso, eu tive que executar umBuild > Clean Project
.Observe que, para ver
.gradle
, você precisa mudar para a visualização "Projeto" no navegador no canto superior esquerdo:fonte
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
clean
erebuild
projeto.fonte
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
else-> 4. Adicione
multiDexEnabled
true ao seu build.gradlee adicione a dependência
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
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
e resolve o problema. Então preste atenção nisso.
fonte
No meu caso, a questão foi por causa da biblioteca da sala:
Alterando para:
trabalhou.
fonte
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).
fonte
Oi eu tenho o mesmo problema tentei quase tudo. Então, finalmente resolvi após 6 horas de luta depurando tudo linha por linha.
Google-services 3.0 Não suporta firebase com o Studio 3.0 com playServiceVersion: 11.6.0 ou menos.
Solução:
Eu tenho mudança serviços do Google para
E suporta serviços de base de firmas.
Espero que alguém economize seu tempo.
fonte
Habilitar
defaultConfig {multiDexEnabled true}
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.
fonte
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.jar
diretório libs e tudo voltou ao normal.fonte
compile fileTree(include: ['*.jar'], dir: 'libs')
fixo para mim também .. obrigado (y)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.gradle
para o kotlin :Isso funciona para mim no Android Studio 3.0 Beta 6. Consulte esta resposta para obter mais explicações.
fonte
Com a construção estável do Android Studio 3.0, as etapas abaixo funcionaram para mim:
fonte
[NÃO É POSSÍVEL MERGE DEX RESOLVIDO] Após horas transbordando a pilha, resolvi o "UNABLE TO MERGE DEX ERRO"
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
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
fonte
adicione comandos abaixo:
fonte
Instalando o Google Play Services (versão mais recente) + incluindo
no build.gradle resolveu o problema para mim, certifique-se de limpar e reconstruir o projeto!
fonte
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 .
fonte
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.
fonte
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:
build.gradle do módulo comum:
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:
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:
módulo comum build.gradle:
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' .
fonte
Eu também tive o problema.
Consegui resolver alterando
compileSdkVersion
etargetSdkVersion
para a versão mais recente.fonte
Para o nosso projeto, adicionamos acidentalmente o mesmo jar duas vezes com nome diferente. A remoção de um deles resolveu o problema.
fonte
libs
pasta, eu tinha dois arquivos jar, um dos quais é apenas um backup do outro, mas com um nome de arquivo diferente.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.
fonte
Para mim, estava atualizando o sistema de mensagens do firebase em app \ build.gradle:
para
fonte
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:
fonte
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.
fonte
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!
Crie com a
--stacktrace
bandeira 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--stacktrace
bandeira .Dê uma olhada no Gradle Console no Android Studio
View > Tool Windows > Gradle Console
após uma compilaçãoVerifique dependências repetidas executando
./gradlew -q app:dependencies
. Você pode executar isso novamente sempre que modificar seu build.gradle.No build.gradle,
No build.gradle,
No build.gradle,
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:
fonte
fonte
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.
fonte