给Google新架构模板加Crashlytics遇Gradle插件版本冲突求解决
解决Gradle Kotlin DSL项目添加Crashlytics时的插件版本冲突问题
核心原因
你遇到的报错是因为Google的architecture-templates项目采用了**版本catalog(libs.versions.toml)**统一管理插件和依赖版本,而Firebase官方指南的步骤可能让你手动指定了com.android.application的版本,导致Gradle检测到版本冲突,无法协调类路径中已存在的未知版本插件。
具体解决步骤
改用版本catalog引用插件
打开项目根目录的libs.versions.toml,确认[plugins]区块下有对应插件的版本定义(如果没有,添加即可):[plugins] androidApplication = { id = "com.android.application", version = "7.3.1" } googleServices = { id = "com.google.gms.google-services", version = "4.4.0" } googleCrashlytics = { id = "com.google.firebase.crashlytics", version = "2.9.9" }然后在模块级
build.gradle.kts的plugins块中,用alias引用插件,不要手动指定版本:plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.kotlinAndroid) // 添加Crashlytics插件 alias(libs.plugins.googleCrashlytics) }修正根项目的插件类路径配置
根目录的build.gradle.kts中,确保插件都是通过catalog引用并设置apply false,避免重复加载:plugins { alias(libs.plugins.androidApplication) apply false alias(libs.plugins.kotlinAndroid) apply false alias(libs.plugins.googleServices) apply false alias(libs.plugins.googleCrashlytics) apply false }清理缓存并同步项目
- 点击Android Studio右上角的
Sync Project with Gradle Files按钮完成同步 - 如果报错仍然存在,执行
File > Invalidate Caches... > Invalidate and Restart,清理Gradle缓存后重新同步
- 点击Android Studio右上角的
额外注意
不要在plugins块中直接写id("com.android.application") version "x.x.x",所有插件版本都通过libs.versions.toml统一管理,这也是architecture-templates项目的设计规范,能从根源避免版本冲突问题。
内容的提问来源于stack exchange,提问作者appersiano
相关产品推荐
相关产品推荐

