You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Firebase时Gradle构建失败求助

解决Flutter集成Firebase时Gradle依赖版本冲突问题

这个错误的核心原因很明确:Android Support Library要求同组的所有库必须使用统一版本,你的项目编译环境用的是27版本的SDK,但某个依赖(大概率是Firebase相关插件或者你引入的其他第三方库)偷偷带入了26.1.0版本的support-core-utils,和项目默认的27.1.1版本冲突了。下面我会先讲原理,再给你可执行的解决方案,帮你彻底搞懂为什么要这么做。

先搞懂原理:为什么会出现版本不一致?

Android的Support Library(现在已经逐步被AndroidX替代,但你的项目还在使用旧版)是一套相互依赖的工具库,Google要求所有同组的support库必须使用完全相同的版本号——比如如果你的appcompat-v7用27.1.1,那么support-core-utils、support-fragment等所有com.android.support组的库都得是27.1.1。

当你引入Firebase插件或者其他第三方Flutter包时,这些包的Android端依赖可能指定了旧版本的support库,Gradle默认会尝试合并这些依赖,但遇到版本冲突时就会抛出这个错误,要求你手动统一版本。

解决方案:强制统一所有Support库版本

最通用且有效的解决方法是在Gradle中配置强制版本策略,让所有com.android.support组的库都使用和你项目SDK匹配的版本(也就是27.1.1)。

步骤1:修改android/build.gradle文件

打开项目根目录下的android/build.gradle,找到其中的subprojects代码块,添加依赖版本统一的配置。你可以把现有的两个subprojects块合并成一个,最终代码如下:

subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
    project.evaluationDependsOn(':app')
    // 新增:强制统一所有com.android.support库的版本
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex')) {
                details.useVersion "27.1.1"
            }
        }
    }
}

代码解释

这段配置的作用是:

  • 遍历所有子项目(包括Flutter插件的Android模块)的依赖
  • 只要是com.android.support组的依赖(排除multidex,它不受版本统一限制),就强制使用27.1.1版本
  • 这样不管哪个第三方插件引入了旧版本的support库,都会被替换成和你项目匹配的版本,彻底解决冲突

可选:排查冲突来源(帮你更清楚问题根源)

如果你想知道到底是哪个插件引入了26.1.0版本的support-core-utils,可以在终端运行以下命令查看完整依赖树:

./gradlew app:dependencies

在输出结果中搜索com.android.support:support-core-utils,就能看到哪个依赖下面挂着26.1.0的版本。不过这个步骤只是帮你理解问题,不影响解决效果——强制统一版本已经足够解决问题。

验证解决方案

修改完配置后,直接运行flutter run或者flutter build apk,Gradle会重新解析依赖,版本冲突问题应该就会消失了。

内容的提问来源于stack exchange,提问作者Malcolm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:42:53