Android 27构建时Gradle无法解析support-v4 27.1.0等依赖求助
解决Android API 27构建时Support-v4与Firebase Messaging依赖冲突问题
嘿,我看你在基于API 27构建应用时,添加com.android.support:support-v4:27.1.0和com.google.firebase:firebase-messaging:12.0.1这两个依赖时遇到了问题。结合你给出的项目级Gradle配置,我来帮你分析下问题根源和解决办法:
核心问题:版本兼容性不匹配
Firebase 12.0.1版本依赖的Google Play Services库,和你使用的Support Library 27.1.0存在版本适配冲突。Firebase在12.x这个较早的版本里,对应的Support Library版本是26.x系列,直接用27.1.0就会导致依赖冲突。
具体解决方案
方案1:升级Firebase Messaging到兼容API 27的版本
最推荐的方式是升级Firebase Messaging到更稳定且适配API 27的版本,比如17.6.0(这个版本是经过验证的API 27兼容稳定版),同时同步升级Google Services插件版本:
修改你的项目级build.gradle:
buildscript { repositories { google() // 优先用这个仓库,已经包含maven.google.com的内容 jcenter() // 可以删掉 maven { url "https://maven.google.com" },避免重复 } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' // 这个版本和API 27兼容,没问题 classpath 'com.google.gms:google-services:4.3.10' // 升级到适配Firebase 17+的版本 } }
然后在应用级build.gradle里更新依赖:
dependencies { implementation 'com.android.support:support-v4:27.1.0' implementation 'com.google.firebase:firebase-messaging:17.6.0' }
方案2:降级Support Library适配Firebase 12.0.1
如果不想升级Firebase,那可以把Support Library版本降到Firebase 12.0.1兼容的26.1.0,同时调整你的编译版本:
应用级build.gradle修改:
android { compileSdkVersion 26 targetSdkVersion 26 // 其他配置... } dependencies { implementation 'com.android.support:support-v4:26.1.0' implementation 'com.google.firebase:firebase-messaging:12.0.1' }
方案3:强制统一所有依赖的Support Library版本
如果还是存在隐性冲突,可以在应用级build.gradle里添加强制依赖规则,确保所有第三方依赖使用的Support Library版本和你的保持一致:
configurations.all { resolutionStrategy { force 'com.android.support:support-v4:27.1.0' force 'com.android.support:support-core-utils:27.1.0' // 根据实际冲突情况,添加其他相关的Support Library模块 } }
额外提醒
- 确保
google()仓库在仓库列表的最前面,这样Gradle会优先从Google官方仓库拉取依赖,避免版本不一致的问题。 - 记得在修改完Gradle配置后,点击Sync Now同步项目,让配置生效。
内容的提问来源于stack exchange,提问作者Darshan Pania
相关产品推荐
相关产品推荐

