web-dev-qa-db-ja.com

com.Android.builder.dexing.DexArchiveMergerException:dexをマージできません-Android St​​udio 3.0 stable

私が作った:

  • 「設定」->「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
}

アプリ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'

私が今何をすべきか助けてください

重複をマークしないでください。ほとんどすべてのソリューションを試しました

22
Nauman Shafique

更新するには遅すぎることはわかっていますが、私のプロジェクトでも同じ問題がありました。

考えられる理由

  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'
      }
    
  • 上記の例では、hamcrest-coreorgから除外します。 hamcrest.

16
Vatsal Patel

同じ問題が発生しました。sourceCompatibilitytargetCompatibilitybuild.gradleに追加すると役に立ちました。

Android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
9

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'

Unable to merge dex

3

私はこれにぴったり合っていましたが、答えはどれもうまくいきませんでした。最終的に解決策が見つかりました-ここでそれを共有しますが、問題のある依存関係を見つける方法を明確に伝えることはできません-多分、あなたはいくつかの試行錯誤をする必要があります。

build.gradle(Module:app)このexclude句を追加しました:

    compile ('org.Eclipse.paho:org.Eclipse.paho.Android.service:1.0.2')
        { exclude module: 'support-v4' }
3
veggiebenz

私の場合、すべてのcom.Android.support:ライブラリを27.1.0に変更すると動作します

0
Marriage