如何修复“重复类 com.google.android.gms.common.api.internal.zza"错误? [英] How to fix "Duplicate class com.google.android.gms.common.api.internal.zza" error?

查看:74
本文介绍了如何修复“重复类 com.google.android.gms.common.api.internal.zza"错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将 Android Studio 更新至 3.4 和 Admob编译'com.google.android.gms:play-services-ads:12.0.1'实现'com.google.android.gms:play-services-ads:17.2.0'

此后,当我尝试运行应用程序时出现重复的类错误.

我遇到的错误

在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和类中发现重复的类 com.google.android.gms.common.api.internal.zza.jar (com.google.android.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google) 中发现重复的类 com.google.android.gms.common.api.internal.zzb.android.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google) 中发现重复的类 com.google.android.gms.common.api.internal.zzc.android.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google) 中发现重复的类 com.google.android.gms.common.api.internal.zzd.android.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google.android) 中发现重复的类 com.google.android.gms.common.api.zza.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google.android) 中发现重复的类 com.google.android.gms.common.api.zzb.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google.android) 中发现重复的类 com.google.android.gms.common.internal.zzb.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google.android) 中发现重复的类 com.google.android.gms.common.internal.zzr.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google.android) 中发现重复的类 com.google.android.gms.common.internal.zzs.gms:play-services-basement:16.0.1)在模块 classes.jar (com.google.android.gms:play-services-base:12.0.1) 和 classes.jar (com.google.android.gms) 中发现重复的类 com.google.android.gms.common.zze:play-services-basement:16.0.1)转到文档以了解如何修复依赖项解析错误.

顶级gradle

<预><代码>//顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项.构建脚本{存储库{谷歌()jcenter()maven { url 'https://maven.fabric.io/public' }}依赖{类路径 'com.android.tools.build:gradle:3.4.0'类路径 'com.google.gms:google-services:4.2.0'//注意:不要将您的应用程序依赖项放在这里;他们属于//在单独的模块 build.gradle 文件中类路径 'io.fabric.tools:gradle:1.28.1'}}所有项目{存储库{谷歌()jcenter()}}任务清理(类型:删除){删除 rootProject.buildDir}``

应用的gradle

buildscript {存储库{maven { url 'https://maven.fabric.io/public' }}依赖{类路径 'io.fabric.tools:gradle:1.27.1'}}应用插件:'com.android.application'应用插件:'io.fabric'存储库{maven { url 'https://maven.fabric.io/public' }}安卓 {useLibrary 'org.apache.http.legacy'compileSdkVersion 27buildToolsVersion '28.0.3'默认配置{应用程序 IDxx.xxx"minSdk 版本 15目标SDK版本27版本代码 23版本名称1.23"multiDexEnabled truetestInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"manifestPlaceholders = [onesignal_app_id: "xxxx-xxx-xxx-xxx",//从仪表板拉取的项目编号,忽略本地值.onesignal_google_project_number:远程"]}构建类型{释放 {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}依赖{实现文件树(目录:'libs',包括:['*.jar'])androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {排除组:'com.android.support',模块:'support-annotations'})实现 'com.android.support:recyclerview-v7:27.1.1'实现 'com.android.support:appcompat-v7:27.1.1'实现 'com.android.support:cardview-v7:27.1.1'实现 'com.android.support:design:27.1.1'实现 'com.android.support:customtabs:27.1.1'//实现 'com.google.android.gms:play-services-base:16.1.0'//编译'com.google.android.gms:play-services-gcm:12.0.1'实现 'com.google.android.gms:play-services-ads:17.2.0'//编译'com.google.android.gms:play-services-basement:16.0.1'//编译'com.google.android.gms:play-services-measurement-sdk-api:17.2.0'实现 'de.hdodenhof:circleimageview:3.0.0'实现 'com.github.bumptech.glide:glide:3.7.0'实现 'com.loopj.android:android-async-http:1.4.9'实现 'com.onesignal:OneSignal:3.10.8'实现 'com.android.support:multidex:1.0.3'//改造,gson实施 'com.squareup.retrofit2:retrofit:2.5.0'实现 'org.droidparts:droidparts:3.2.5'实现 'org.jsoup:jsoup:1.11.3'实现('com.crashlytics.sdk.android:crashlytics:2.9.9@aar'){传递 = 真;}testImplementation 'junit:junit:4.12'}```

解决方案

请从这个 link,并相应地替换您的 gradle 文件中的正确版本.

在应用程序的build.gradle"文件中,将以下内容与android {...}"一起添加

configurations.all {解析策略{强制 'com.google.android.gms:play-services-basement:17.1.0'}}

当时最新的 google play services basement library 版本是 17.1.0.

希望这会有所帮助.

I have updated Android Studio to 3.4 and Admob library from complie 'com.google.android.gms:play-services-ads:12.0.1' to implementation 'com.google.android.gms:play-services-ads:17.2.0'

After that I got duplicate class error when I tried to run app.

Error i got

Duplicate class com.google.android.gms.common.api.internal.zza found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.api.internal.zzb found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.api.internal.zzc found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.api.internal.zzd found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.api.zza found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.api.zzb found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.internal.zzb found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.internal.zzr found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.internal.zzs found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)
Duplicate class com.google.android.gms.common.zze found in modules classes.jar (com.google.android.gms:play-services-base:12.0.1) and classes.jar (com.google.android.gms:play-services-basement:16.0.1)

Go to the documentation to learn how to Fix dependency resolution errors.

Top level gradle


    // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        repositories {
            google()
            jcenter()
            maven { url 'https://maven.fabric.io/public' }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.4.0'
            classpath 'com.google.gms:google-services:4.2.0'
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
            classpath 'io.fabric.tools:gradle:1.28.1'
        }
    }

    allprojects {
        repositories {
            google()
            jcenter()
        }
    }

    task clean(type: Delete) {
        delete rootProject.buildDir
    }

    ```

App's gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.27.1'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}


android {
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 27
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId "xx.xxx"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 23
        versionName "1.23"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        manifestPlaceholders = [onesignal_app_id: "xxxx-xxx-xxx-xxx",
                                // Project number pulled from dashboard, local value is ignored.
                                onesignal_google_project_number: "REMOTE"]
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:customtabs:27.1.1'
   // implementation 'com.google.android.gms:play-services-base:16.1.0'
    //compile 'com.google.android.gms:play-services-gcm:12.0.1'
    implementation 'com.google.android.gms:play-services-ads:17.2.0'
    //compile 'com.google.android.gms:play-services-basement:16.0.1'
    //compile 'com.google.android.gms:play-services-measurement-sdk-api:17.2.0'

    implementation 'de.hdodenhof:circleimageview:3.0.0'
    implementation 'com.github.bumptech.glide:glide:3.7.0'
    implementation 'com.loopj.android:android-async-http:1.4.9'
    implementation 'com.onesignal:OneSignal:3.10.8'

    implementation 'com.android.support:multidex:1.0.3'
    // retrofit, gson
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'

    implementation 'org.droidparts:droidparts:3.2.5'
    implementation 'org.jsoup:jsoup:1.11.3'
    implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') {
        transitive = true;
    }
    testImplementation 'junit:junit:4.12'
}```

解决方案

Please look up the latest google's play service libraries from this link, and replace the correct version in your gradle file accordingly.

In the app's "build.gradle" file, add the following along with "android {...}"

configurations.all {
    resolutionStrategy {
        force 'com.google.android.gms:play-services-basement:17.1.0'
    }
}

At the time, the lastest google play services basement library version is 17.1.0.

Hope this helps.

这篇关于如何修复“重复类 com.google.android.gms.common.api.internal.zza"错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆