You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译报错:Program type already present相关Google Play Services类重复

解决Android编译错误:Program type already present: com.google.android.gms.internal.measurement.zzabn/zzabo

Hey,我之前帮不少开发者搞定过这个问题,这个错误本质是依赖冲突——你的项目里引入了多个不同版本的Google Play Services相关库(尤其是Measurement/Analytics类库),导致D8编译器碰到了重复的类定义。下面给你几个靠谱的解决步骤:

方法1:统一所有Google Play Services库的版本

这是最常见也最有效的解决方式,避免不同依赖用了不同版本的Play Services库:

  • 打开项目根目录的build.gradle文件,添加统一版本变量:
    buildscript {
        ext {
            // 替换成你当前项目适配的稳定版本,比如4.4.0或更高
            googleServicesVersion = "4.4.0"
        }
        // 其他原有配置...
    }
    
  • 接着在模块(一般是app)的build.gradle里,所有Play Services相关依赖都使用这个统一版本,比如:
    implementation "com.google.android.gms:play-services-analytics:${googleServicesVersion}"
    implementation "com.google.android.gms:play-services-auth:${googleServicesVersion}"
    

方法2:排查并排除重复依赖

如果是某个第三方库偷偷引入了旧版本的Measurement库,你可以手动排查并排除:

  • 执行Gradle命令查看完整依赖树,找出重复的库:
    # Mac/Linux用户
    ./gradlew app:dependencies
    # Windows用户
    gradlew app:dependencies
    
  • 在输出的依赖树里找到包含com.google.android.gms.internal.measurement相关类的重复依赖,然后在模块的build.gradle里排除它,比如:
    // 假设第三方库third-party-lib引入了重复的measurement库
    implementation('com.example:third-party-lib:1.0.0') {
        exclude group: 'com.google.android.gms', module: 'play-services-measurement'
    }
    

方法3:更新Google Services插件版本

旧版本的Google Services插件也可能导致这类版本冲突问题:

  • 打开项目根目录的build.gradle,确保Google Services插件是最新稳定版:
    buildscript {
        dependencies {
            classpath 'com.google.gms:google-services:4.4.0' // 检查并更新到最新
        }
    }
    

方法4:清理缓存并重新构建

有时候Gradle缓存会搞出奇怪的问题,试试清理后重新构建:

  • 执行清理命令:
    ./gradlew clean
    
  • 然后在Android Studio里点击「Sync Project with Gradle Files」,再重新构建项目。

内容的提问来源于stack exchange,提问作者Jack Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:36:29