You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修复更新根目录Google Play服务后出现的版本冲突错误

解决Google Play服务测量库版本冲突问题

嘿,这个问题我之前帮不少开发者踩过坑,别慌,咱们一步步来搞定它!

问题原因拆解

这个错误本质是依赖版本不一致:你的项目里不同的依赖(可能是第三方SDK、自定义模块,或者你直接引入的GMS组件)分别请求了com.google.android.gms:play-services-measurement-base的15.0.0和15.0.2版本。虽然Gradle最终会选择较高的15.0.2版本,但Google的GMS插件对核心库的版本一致性要求非常严格,只要有不同版本的请求就会触发这个禁用插件的提示。

具体解决方案

方案1:强制统一所有依赖的版本(最快见效)

在你的app模块build.gradle文件中,添加以下配置,强制所有依赖都使用指定的15.0.2版本:

configurations.all {
    resolutionStrategy {
        // 强制统一测量库的版本
        force 'com.google.android.gms:play-services-measurement-base:15.0.2'
    }
}

这个配置会覆盖所有依赖对该库的版本请求,直接统一成你指定的版本,快速解决冲突。

方案2:排查并排除旧版本依赖(更精准)

如果你想知道到底是哪个依赖引入了旧版本的库,可以通过Gradle命令生成依赖树来定位:

  • 终端执行(Mac/Linux):
    ./gradlew app:dependencies
    
  • 终端执行(Windows):
    gradlew app:dependencies
    

在输出结果中搜索play-services-measurement-base,找到标注为15.0.0的依赖项,然后在对应的依赖声明里排除这个旧版本的库。比如假设是com.example:third-party-sdk:2.0.0引入的旧版本,就修改依赖:

implementation('com.example:third-party-sdk:2.0.0') {
    exclude group: 'com.google.android.gms', module: 'play-services-measurement-base'
}

方案3:统一管理所有GMS/Firebase版本(从根源避免)

把所有Google Play服务和Firebase相关的依赖版本用同一个变量管理,从根源上避免版本不一致。在根目录build.gradle里定义版本变量:

ext {
    gms_firebase_version = '15.0.2'
}

然后在app模块的dependencies中统一使用这个变量:

implementation "com.google.android.gms:play-services-analytics:$gms_firebase_version"
implementation "com.google.android.gms:play-services-auth:$gms_firebase_version"
// 如果用了Firebase,版本也要统一
implementation "com.google.firebase:firebase-analytics:$gms_firebase_version"

额外注意点

如果你的项目中使用了Firebase相关库,一定要确保Firebase的版本和Google Play服务的版本保持匹配——这两类库是紧密绑定的,版本不匹配也会触发类似的冲突问题。

按照上面的方法试一下,应该就能解决这个恼人的问题了。如果还有疑问,可以把依赖树的相关片段贴出来,我再帮你细化排查!

内容的提问来源于stack exchange,提问作者Srinivas Nahak

火山引擎 最新活动