O android studio estava recebendo um erro de compilação durante a execução da compilação com o seguinte:
Erro: Falha na execução da tarefa ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Incapaz de mesclar dex "
Meu aplicativo: arquivo build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.pdroid.foodieschoice"
minSdkVersion 16
targetSdkVersion 25
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.constraint:constraint-layout:1.0.2'
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
testCompile 'junit:junit:4.12'
}
configurations.all {
resolutionStrategy {
force 'com.android.support:appcompat-v7:26.0.1'
force 'com.android.support:support-compat:26.0.1'
force 'com.android.support:support-core-ui:26.0.1'
force 'com.android.support:support-annotations:26.0.1'
force 'com.android.support:recyclerview-v7:26.0.1'
}
}
apply plugin: 'com.google.gms.google-services'
quaisquer soluções
Edit: fiz com a amostra por meio do site firebase github e resolvi
android
android-studio-3.0
build-error
Anguraj
fonte
fonte
Respostas:
Para projetos baseados em Cordova, execute
cordova clean android
antes de construir novamente, como sugeriu @mkimmet .fonte
Este erro ocorre quando você adiciona uma biblioteca externa que pode não ser compatível com o seu
compileSdkVersion
.Tenha cuidado ao adicionar um
external library
.Passei 2 dias resolvendo esse problema e finalmente foi resolvido seguindo esses passos.
Certifique-se de que todas as suas bibliotecas de suporte sejam as mesmas que
compileSdkVersion
você,build.gradle(Module:app)
no meu caso26
.Em sua categoria defaultConfig digite multiDexEnabled true . Essa é a parte importante.
Vá para Arquivo | Configurações | Compilação, execução, implantação | Instant Run e tente ativar / desativar o Instant Run para hot swap ... e clique em ok
Sync
Seu projecto.Por último, vá para Build | clique em Rebuild Project .
Nota: Rebuild Project primeiro limpa e então constrói o projeto.
fonte
Tente adicionar isso no gradle
android { defaultConfig { multiDexEnabled true } }
fonte
Resolução:
Consulte este link : Como existem várias opções para desligar o aviso, dependendo da minSdkVersion, ele é definido abaixo de 20 :
android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.3' }
Se você tiver um minSdkVersion maior que 20 em seu conjunto build.gradle, use o seguinte para desligar o aviso:
android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } ... }
Atualize as dependências da seguinte forma:
dependencies { implementation 'com.android.support:multidex:1.0.3' }
Novamente, a única diferença são as palavras-chave nas dependências:
minSdkVersion abaixo de 20: use compilar
minSdkVersion acima de 20: usar implementação
fonte
Simplesmente tente fazer um "Build -> Clean Project". Isso resolveu o problema para mim.
fonte
Para mim, adicionando
multiDexEnabled true
e
packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/notice' exclude 'META-INF/notice.txt' exclude 'META-INF/license' exclude 'META-INF/license.txt' }
no arquivo Build.gradle de nível de aplicativo resolveu o problema
fonte
Vá para o seu
build.gradle
arquivo de nível de módulo e adicione as seguintes linhas ao códigodefaultConfig { ... minSdkVersion 15 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { implementation 'com.android.support:multidex:1.0.3' }
Isso resolveu o problema facilmente. Verifique esta documentação
fonte
Use multiDexEnabled true como abaixo.
{ minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
e
implementation 'com.android.support:multidex:1.0.3'
esta solução funcionou para mim.
fonte
Tentei muitas soluções, conforme mencionado acima, incluindo multiDexEnabled true, mas nenhuma funcionou para mim.
Aqui está a solução que funcionou para mim - copie este código no arquivo app \ build.gradle
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support' && requested.name != 'multidex') { details.useVersion "${rootProject.ext.supportLibVersion}" } } }
Certifique-se de executar gradlew clean antes de executar o código
fonte
A mesma coisa aconteceu comigo, descobri que estava no meio de uma atualização para AS 3.0.1 e depois que fiz a atualização, limpei e recompilei o aplicativo, tudo foi consertado.
fonte
Para mim, o que corrigiu esse erro foi alterar uma linha nas dependências do gradle do meu aplicativo.
deste :
compile('com.google.android.gms:play-services-gcm:+') { force = true }
Para isso :
compile('com.google.android.gms:play-services-gcm:11.8.0') { force = true }
fonte
Além disso, certifique-se de que seu aplicativo tenha como subclasse MultiDexApplication
import android.support.multidex.MultiDexApplication class App : MultiDexApplication()
ou se não subclassificar a classe Application, adicione a AndroidManifest.xml
<application android:name="android.support.multidex.MultiDexApplication"
fonte
Você está entre as atualizações do SDK ou da plataforma? Se sim, conclua-os completamente e tente continuar. Eu normalmente atualizo os pacotes individuais que precisam ser atualizados para fazer a atualização completa, que pode ir até 2,5 GB às vezes. Fazer essa atualização completa às vezes falha. Tive várias atualizações do SDK depois de fazer upgrade para o Android Studio 3.0 e estava recebendo o erro acima, pois todos os pacotes não haviam sido atualizados. Assim que atualizei todos os pacotes, o erro acima desapareceu.
fonte
No meu caso, alterar a versão da biblioteca do Firebase de 2.6.0 para 2.4.2 corrigiu o problema
fonte
Para mim, o problema era o uso do Java 1.8 em um módulo, mas não no módulo de app. Eu adicionei isso ao gradle de compilação do aplicativo e funcionou:
android{ compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
fonte
Mesmo problema. Eu habilitei multidex: defaultConfig {applicationId "xxx.xxx.xxxx" minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true
Limpei o cache, executei gradle clean, rebuild, make, tentei garantir que não houvesse conflitos nas bibliotecas importadas (removi todas as dependências transitivas) e fiz todas as atualizações. Ainda:
Acontece que a compilação não gostou de: implementação 'org.slf4j: slf4j-android: 1.7.21'
fonte
Quando a versão do Android Studio for 3.0.1, a versão do Gradle for 4.1 e o Android PluginVersion for 3.0.0, ele encontrará esse problema. Então eu faço o downgrade do Gradle versão 3.3, Android Android é zero, não existe esse problema.
fonte
Eu tinha isso quando a versão do SDK solicitada não correspondia às dependências. Você pode clicar na linha destacada e corrigir isso clicando na lâmpada vermelha. Não há necessidade de encontrar a versão real, apenas deixe o IDE descobrir para você. E adicione o repositório do Google à configuração do maven.
fonte
Estava recebendo o mesmo erro e no meu caso, o erro foi resolvido quando eu corrigi um erro de compilação que estava associado a uma variante de compilação diferente daquela que eu estava construindo atualmente.
Eu estava construindo a variante de compilação que estava vendo sem erros, mas a tentativa de depuração causou um
app:transformDexArchiveWithExternalLibsDexMergerForDebug
erro. Assim que mudei para construir a outra variante de construção, detectei meu erro no processo de construção e o corrigi. Isso pareceu resolver meuapp:transformDexArchiveWithExternalLibsDexMergerForDebug
problema para todas as variantes de compilação.Observe que esse erro não estava no módulo externo referenciado, mas em um conjunto de origem distinto de uma variante de construção que referenciou um módulo externo. Espero que isso seja útil para alguém que pode estar vendo o mesmo caso que eu!
fonte
Concluí e resolvi esse problema apenas fazendo essas tarefas no meu código
Abrir -> build.gradle Alterar valor de
compile 'com.google.code.gson:gson:2.6.1'
para
compile 'com.google.code.gson:gson:2.8.2'
fonte
Para remover esse problema de Dex, basta implementar uma dependência. Esse problema ocorre quando estamos usando vários serviços diferentes do mesmo servidor. Suponha que estejamos usando anúncios e Firestore em um projeto e ambos tenham um maven de repositório. então, precisamos chamar dados diferentes no repositório que precisamos da dependência dex para implementar. A nova dependência de atualização: -
implementation 'com.android.support:multidex:1.0.3'
Tenho certeza que isso resolverá seu problema de forma permanente
fonte
android {compileSdkVersion 28 defaultConfig {
minSdkVersion 17 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
fonte
A maneira mais fácil de evitar esse tipo de erro é:
- Altere a biblioteca combilesdkversion da mesma forma que a versão compilesdk do seu aplicativo
- Altere a versão da biblioteca de suporte da mesma para o build.gradle (app)
fonte
Isto é o que funciona para mim. limpar, preparar e executar.
cordova clean android; ionic cordova prepare andriod; ionic cordova run andriod;
espero que ajude.
fonte
Eu também recebi o erro semelhante.
A principal causa para esse problema ismultiDex não está habilitado. Portanto, em Project / android / app / build.gradle , habilite o multiDex
Para obter mais informações, consulte a documentação: https://developer.android.com/studio/build/multidex#mdex-gradle
fonte
Você sempre pode reverter para DX agora por meio desta configuração no
gradle.properties
arquivo do seu projeto :android.enableD8=false
Para obter mais informações, consulte https://android-developers.googleblog.com/2018/04/android-studio-switching-to-d8-dexer.html
fonte