多个dex文件定义Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;

Multiple dex files define Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;

我在 android studio

上尝试编译我的项目时遇到此错误
app:transformClassesWithDexForDebug FAILED
Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

    `com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-i386/bin/java'' finished with non-zero exit value 2`

下面是我的 build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "paritosh.d9.groceries"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.android.support:design:23.1.1'
    compile 'com.facebook.android:facebook-android-sdk:4.11.0'
    compile 'com.facebook.android:audience-network-sdk:4.7.0'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-auth:8.4.0'
}

我试图解决这个问题已经好几个小时了。我试过 删除我的播放服务依赖项,但这并没有解决问题。 请帮我解决这个问题。谢谢

你有重复的依赖项——两个 类 是相同的。您应该了解哪个库包含您应该排除的那个库。为此,您需要 运行 控制台中的下一行:

./gradlew app:androidDependencies

此外,您可以在 Android Studio 中使用 Gradle 插件执行相同的操作:

输出将是这样的:

+--- com.android.support:multidex:1.0.1
+--- io.realm:realm-android-library:1.0.0
|    \--- com.getkeepsafe.relinker:relinker:1.2.1
+--- com.android.support:appcompat-v7:23.3.0
|    +--- com.android.support:animated-vector-drawable:23.3.0
|    |    \--- com.android.support:support-vector-drawable:23.3.0
|    \--- com.android.support:support-vector-drawable:23.3.0
+--- com.android.support:design:23.3.0
|    +--- com.android.support:appcompat-v7:23.3.0
|    |    +--- com.android.support:animated-vector-drawable:23.3.0
|    |    |    \--- com.android.support:support-vector-drawable:23.3.0
|    |    \--- com.android.support:support-vector-drawable:23.3.0
|    \--- com.android.support:recyclerview-v7:23.3.0

查找 gms 库的重复项并像这样排除它:

 compile(group: 'com.google.android.gms', name: 'play-services-gcm', version: "8.4.0") {
        exclude(group: 'com.google.android.gms', module: 'play-services-base')
        exclude(group: 'com.google.android.gms', module: 'play-services-basement')
    }

如果还是不能解决问题,请告诉我

的输出结果
./gradlew app:androidDependencies