谷歌新SDK版本系统发布后Gradle项目同步失败及依赖配置错误求助
解决「Cannot change dependencies of configuration ':app:api' after it has been included in dependency resolution」构建错误
我来帮你搞定这个头疼的构建问题!先理清楚你的处境:你碰到了这个报错,现在只有禁用数据绑定才能用com.google.gms:google-services:3.3.0完成构建,但这显然不是长久之计——毕竟很多项目离不开数据绑定,而且你已经按照谷歌新SDK版本系统的要求更新了Gradle里的GMS和Firebase版本号。
问题根源
这个错误本质上是旧版Google Services插件和数据绑定的执行顺序冲突导致的。google-services:3.3.0是比较老旧的版本,对数据绑定的支持存在兼容性缺陷,在依赖解析完成后还试图修改配置,就触发了这个报错。
具体解决方案
1. 优先升级Google Services插件版本
这是最直接有效的办法,把插件升级到稳定的新版本(比如4.3.10或更高,注意和你的Android Gradle Plugin版本适配):
在项目根目录的build.gradle里更新依赖:
buildscript { dependencies { // 替换成最新的稳定版,比如4.3.10 classpath 'com.google.gms:google-services:4.3.10' } }
2. 确保数据绑定配置正确
在app模块的build.gradle里,正确启用数据绑定:
- 如果你的Android Gradle Plugin是4.0及以上版本:
android { ... buildFeatures { dataBinding true // 要是用到视图绑定也可以加上这行 // viewBinding true } }
- 要是用的是更旧的AGP版本(低于4.0),就用旧写法:
android { ... dataBinding { enabled = true } }
3. 调整插件应用顺序
一定要把Google Services插件的应用放在最后,等所有其他配置和依赖都声明完再加载它:
// 先加载Android、Kotlin这些基础插件 plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' // 其他项目需要的插件 } android { // 这里放数据绑定、编译版本等配置 } dependencies { // 先声明所有依赖,包括Firebase/GMS的 implementation platform('com.google.firebase:firebase-bom:32.7.0') implementation 'com.google.firebase:firebase-analytics' // 其他业务依赖 } // 最后再应用Google Services插件 apply plugin: 'com.google.gms.google-services'
4. 清理缓存后重建项目
改完配置后,别直接构建,先清掉旧缓存:
- 可以在Android Studio里点
Build->Clean Project,再点Rebuild Project - 或者终端执行命令:
./gradlew clean build
验证效果
做完这些步骤后,重新构建项目,应该就能在保留数据绑定的情况下顺利完成构建,不会再弹出那个烦人的报错了。
内容的提问来源于stack exchange,提问作者kash




