Flutter集成Google Mobile Ads SDK编译时Android依赖错误
Flutter Google Mobile Ads Android依赖冲突解决方案
冲突根因
项目集成的firebase-analytics:17.5.0强依赖固定版本的com.google.android.gms:play-services-measurement-sdk-api@[17.5.0],但google_mobile_ads插件依赖的com.google.android.gms:play-services-ads:20.1.0会传递引入更高版本的play-services-measurement-sdk-api:18.0.0,版本不匹配触发谷歌Play服务严格版本校验规则,导致编译失败。
解决方案
方案1:升级Firebase Analytics版本(推荐)
升级Firebase Analytics到适配高版本Play服务的版本,从根源解决兼容问题:
- 打开项目
android/build.gradle文件,替换原有firebase-analytics依赖的版本号:
dependencies { // 替换原有旧版本配置,使用18.0.0及以上兼容版本即可 implementation 'com.google.firebase:firebase-analytics:18.0.0' }
- 执行
flutter clean清理项目缓存后重新编译。
方案2:强制锁定冲突依赖版本
如果暂不适合升级Firebase Analytics,可以通过Gradle配置强制指定冲突依赖的统一版本:
- 打开项目
android/app/build.gradle文件,在android配置块外添加如下配置:
configurations.all { resolutionStrategy { // 强制所有依赖使用17.5.0版本的measurement-sdk-api force 'com.google.android.gms:play-services-measurement-sdk-api:17.5.0' } }
- 清理缓存后重新编译即可,该配置不会影响功能运行稳定性。
方案3:临时关闭版本校验(仅作调试使用,不推荐线上使用)
如果需要快速调试运行,可以暂时关闭谷歌Play服务的版本检查规则:
打开项目根目录的android/build.gradle文件,添加如下配置:
googleServices { disableVersionCheck = true }
若项目中引入了strict-version-matcher-plugin插件,直接移除apply plugin: 'strict-version-matcher-plugin'这行配置即可。
内容的提问来源于stack exchange,提问作者user10974468
相关产品推荐
相关产品推荐

