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

谷歌新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

火山引擎 最新活动