重复条目:com / google / android / gms / internal / zzqv.class Android Studio

时间:2017-01-19 18:56:45

标签: java android android-studio gradle

在我的项目中,我实施了游戏服务游戏,首先我尝试添加
 compile 'com.google.android.gms:play-services:10.0.1'
但我陷入了一些麻烦,我发现的解决方案是只编译所需的库 compile 'com.google.android.gms:play-services-games:10.0.1'
一切都很棒但是当我试图添加游戏服务广告时,事情变得混乱,我添加了 compile 'com.google.android.gms:play-services-ads:10.0.1'
现在我得到

  

错误:任务':app:transformClassesWithJarMergingForDebug'执行失败。   com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com / google / android / gms / internal / zzqv.class

这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.1"
    defaultConfig {
        applicationId "com.apps.fightersam"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile name: 'unity-ads', ext: 'aar'
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
    compile 'com.google.android.gms:play-services-games:10.0.1'
    compile 'com.google.android.gms:play-services-ads:10.0.1'

    compile project(':BaseGameUtils')
}
repositories {
    flatDir {
        dirs 'libs'
    }
}

4 个答案:

答案 0 :(得分:1)

您必须排除内部传递依赖项的重复使用。 找出哪个

gradle -q dependencies

这将为您提供依赖树。然后你可以做类似

的事情
  compile('com.example.m:m:1.0') {
     exclude group: 'org.unwanted', module: 'x 
  }

答案 1 :(得分:0)

我使用的是最新版本的FirebaseUI 2.0.0,似乎与google-services不兼容:3.0.0。因此,我将FirebaseUI版本降级到1.2.0并将以下代码添加到项目级别build.gradle:

allprojects {
    repositories {
        jcenter()

        // Add the following
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}

答案 2 :(得分:0)

我有这样的问题,但在我的情况下,我导入了两个版本的Google库。在你的情况下

从依赖项中删除它:

compile 'com.google.android.gms:play-services-ads:10.0.1'

因为它是从:

导入的
compile name: 'unity-ads', ext: 'aar'

或者执行相反的delet unity-ads并编译'com.google.android.gms:play-services-ads:10.0.1'

古德勒克

答案 3 :(得分:-1)

在我的案例中降级'com.google.android.gms:play-services-games:10.0.1''com.google.android.gms:play-services-ads:10.0.1' 'com.google.android.gms:play-services-games:9.0.1''com.google.android.gms:play-services-ads:9.0.1'做了诀窍!