Android 任务 ':app:packageAllDebugClassesForMultiDex' 的工作室执行失败

Android studio Execution failed for task ':app:packageAllDebugClassesForMultiDex'

我有这个错误:

Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzrf.class

我想向我的项目添加 google 播放服务,所以我将这一行放在 build.gradle 文件中:

compile 'com.google.android.gms:play-services:7.8.0'

所以我必须启用 multidex 并遵循 android 文档,在 build.gradle 中添加:

compile 'com.android.support:multidex:1.0.1'

multiDexEnabled true

我在 android 清单中添加了这个:

<application 
...
android:name="android.support.multidex.MultiDexApplication">

但是我有上面写的错误。我发现了很多与这个问题 (app:packageAllDebugClassesForMultiDex) 有关的问题,但没有发现 (重复条目:com/google/android/gms/internal/zzrf.class).

我尝试了一些解决方案,例如删除一些 google 库,但我不知道 internal/zzrf.class.

指的是什么

这是我的 gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "fr.djey.testgoogleplus"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'com.android.support:multidex:1.0.1'
}

删除该项目构建文件夹下的所有文件。我的是整个google播放的jar文件和只有广告服务的jar文件冲突

我遇到了同样的问题。在我的例子中,我使用了我的 Android 应用程序使用的自制 Android 库。这意味着 1 个项目有 2 个独立的模块,而 app 模块依赖于 library 模块。 两者都支持 multidex。根本原因是 google 播放服务版本之间的不一致。在应用程序模块中,我使用了 7.8.+,在库中,我使用了 8.1.+。所以我只是将两者都更新到相同的 8.1.+ 并为我修复了。所以我的回答是检查你依赖的所有库,并且可能有 1 个使用低于你的 google 播放服务版本。

正如我在评论中所说:我创建了另一个项目并做了同样的事情:放置 google 播放服务和 multidex,问题不再出现。