升级AdMob至15.0.0与最新Support Library的Gradle冲突问题
解决play-services-ads升级时的版本一致性错误
当然可以同时使用适配的Support Library版本和play-services-ads:15.0.0,你遇到的版本规格错误其实是Google Play服务从15.0.0版本开始的一个强制要求——它对依赖的Android Support Library版本一致性有了更严格的检查,而旧版12.0.1对这种版本差异的容忍度更高,所以之前没触发问题。
具体解决步骤:
- 统一Support Library版本:play-services-ads:15.0.0依赖的是Android Support Library 27.1.1,所以你需要确保项目中所有的Support Library相关依赖(比如
appcompat-v7、support-v4、recyclerview-v7等)都使用27.1.1版本,不能有混合版本的情况。 - 强制依赖版本统一:如果你的项目里有第三方依赖偷偷引入了其他版本的Support Library,可以在Module级别的
build.gradle中添加以下配置,强制所有Support Library依赖使用指定版本:
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith("multidex")) { details.useVersion '27.1.1' } } } }
- 同步Gradle项目:添加配置后点击Sync Now,等待同步完成,版本不一致的错误就会消失了。
额外说明:
如果你之后想升级到更高版本的Support Library(比如28.0.0),记得同步升级play-services-ads到对应的兼容版本——比如play-services-ads:17.0.0及以上版本开始支持Support Library 28.0.0。如果后续考虑迁移到AndroidX,新版的play-services-ads也完全支持AndroidX环境,不过那需要你把整个项目的Support Library替换为AndroidX依赖。
内容的提问来源于stack exchange,提问作者Angel Koh
相关产品推荐
相关产品推荐

