com.android.builder.dexing.DexArchiveMergerException:无法合并dex – Android Studio 3.0稳定

我做了:

  • 在“设置” – >“Android SDK” – >“SDK工具”中,检查并安装了Google Play服务v.46
  • 删除了文件夹/.gradle
  • “清洁工程”
  • “重建项目

错误是:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 

项目build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' classpath 'com.google.gms:google-services:3.1.0' } } allprojects { repositories { jcenter() google() } } task clean(type: Delete) { delete rootProject.buildDir } 

App build.gradle

 apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion '26.0.2' defaultConfig { applicationId "com.asanquran.mnaum.quranasaanurdutarjuma" minSdkVersion 15 targetSdkVersion 26 versionCode 3 versionName "1.3" 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.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.google.android.gms:play-services-ads:11.4.2' compile 'com.github.barteksc:android-pdf-viewer:2.3.0' compile 'org.apache.commons:commons-io:1.3.2' compile 'com.google.firebase:firebase-ads:11.4.2' compile 'com.google.firebase:firebase-messaging:11.4.2' compile 'com.google.firebase:firebase-storage:11.4.2' apply plugin: 'com.google.gms.google-services' testCompile 'junit:junit:4.12' } apply plugin: 'com.google.gms.google-services' 

请帮助我现在该怎么办

请不要标记它重复我已经尝试了几乎所有的解决方案

    我遇到了同样的问题,将sourceCompatibilitytargetCompatibility添加到我的build.gradle帮助我:

     android { compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } } 

    我对此很满意,而且我发现的答案都没有。 终于find了一个解决方案 – 在这里分享它虽然我无法明确地告诉你如何find哪个是违规依赖 – 也许你必须做一些试验和错误。

    在我的build.gradle (Module:app)中,我添加了这个exclude子句:

      compile ('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') { exclude module: 'support-v4' } 

    除了将11.0.4更改为11.8.0之外,我确实完成了图像中的提示

     compile 'com.google.android.gms:play-services-base:11.8.0' compile 'com.google.android.gms:play-services:11.8.0' 

    无法合并dex

    我知道更新已经太晚了。我的项目也有同样的问题。

    可能的原因

    1. 如果您在项目中添加了模块,并且该模块具有支持库或任何与您的应用具有不同版本的google play服务库。
    2. 如果您在项目中使用任何开源库,并且在内部使用您在项目中也使用的任何库。

    解决方案

    • 如果项目中是案例1,则更新库版本并在项目和模块中使其相同。
    • 使用以下命令检查依赖关系树,看看依赖关系是否存在不匹配。

       ./gradlew :app:dependencies 
    • 您可以从以下任何依赖项中排除特定模块。

       implementation('com.google.android.ads.consent:consent-library:1.0.4') { transitive = true exclude group: "com.android.support" } 
    • 在上面的示例中,它将从同意库依赖项中排除com.android.support

    • 您也可以删除特定模块。

        compile ('junit:junit:4.12'){ exclude group: 'org.hamcrest', module:'hamcrest-core' } 
    • 在上面的例子中,它将从org.hamcrest中排除hamcrest-core

    在我的情况下,我将所有com.android.support:库更改为27.1.0,它的工作原理