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

添加cloud_firestore依赖后Flutter项目构建失败求助

问题描述

在Flutter项目中添加cloud_firestore: ^0.12.10依赖后,编译时出现依赖版本冲突错误。项目的pubspec.yaml依赖配置如下:

dependencies:
  url_launcher: ^5.0.0
  flutter_launcher_icons: ^0.7.4
  cloud_firestore: ^0.12.10
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2
  firebase_messaging: ^5.1.6
dev_dependencies:
  flutter_test:
    sdk: flutter
flutter_icons:
  android: "launcher_icon"
  ios: true
  image_path: "assets/launcher_icon/LauncherIcon.png"

执行flutter run时的错误输出:

Launching lib\main.dart on SM A505F in debug mode...
Initializing gradle... 1.1s
Resolving dependencies... 16.3s
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
FAILURE: Build failed with an exception.

  • 出错原因:
    Failed to notify dependency resolution listener.

多个库请求com.google.android.gms:play-services-measurement-base库的版本为[[17.2.1,17.2.1]],但实际解析版本为16.5.0。请禁用插件并使用./gradlew :app:dependencies检查依赖树。
多个库请求com.google.firebase:firebase-iid库的版本为[[20.0.0,20.0.0]],但实际解析版本为17.1.2。请禁用插件并使用./gradlew :app:dependencies检查依赖树。

  • 建议:
    使用--stacktrace选项获取堆栈跟踪。
    使用--info或--debug选项获取更多日志输出。
    使用--scan选项获取完整分析信息。

  • 获取更多帮助:https://help.gradle.org

BUILD FAILED in 11s
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done 11.8s
Gradle task assembleDebug failed with exit code 1

flutter doctor -v输出:

[√] Flutter (Channel stable, v1.9.1+hotfix.6, on Microsoft Windows [Version 10.0.18362.418], locale en-IN)
    • Flutter版本1.9.1+hotfix.6,路径为D:\flutter_windows_v1.9.1+hotfix.2-stable\flutter
    • Framework版本68587a0916(8周前),2019-09-13 19:46:58 -0700
    • Engine版本b863200c37
    • Dart版本2.5.0

[!] Android toolchain - 为Android设备开发(Android SDK版本29.0.2)
    • Android SDK路径为C:\Users\aditl\AppData\Local\Android\sdk
    • 未配置Android NDK位置(可选;对原生性能分析有用)
    • 平台android-29,build-tools 29.0.2
    • Java二进制文件路径:C:\Program Files\Android\Android Studio\jre\bin\java
    • Java版本OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    ! 未接受部分Android许可证。解决方法:运行flutter doctor --android-licenses

[√] Android Studio(版本3.5)
    • Android Studio路径为C:\Program Files\Android\Android Studio
    • Flutter插件版本41.0.2
    • Dart插件版本191.8593
    • Java版本OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code(版本1.40.0)
    • VS Code路径为C:\Users\aditl\AppData\Local\Programs\Microsoft VS Code
    • Flutter扩展版本3.6.0

[√] 已连接设备(1台可用)
    • SM A505F • RZ8M60LFVPP • android-arm64 • Android 9 (API 28)

! 检测到1个类别存在问题。
解决方案

这个问题的核心是Firebase相关依赖的版本不兼容:你使用的firebase_messaging: ^5.1.6是较旧的版本,它依赖的Google Play服务、Firebase IID库版本,和cloud_firestore: ^0.12.10要求的版本不一致,导致Gradle无法自动统一版本,从而编译失败。可以通过以下步骤解决:

1. 更新firebase_messaging到兼容版本

将pubspec.yaml中的firebase_messaging版本升级到和cloud_firestore: ^0.12.10兼容的版本,比如^6.0.16:

dependencies:
  # ...其他依赖保持不变
  firebase_messaging: ^6.0.16

2. 强制Gradle统一依赖版本(可选,若步骤1后仍有问题)

如果更新依赖后还是出现版本冲突,可以在android/build.gradle文件的allprojects块中添加强制版本的配置,确保所有依赖使用相同的库版本:

allprojects {
    repositories {
        google()
        jcenter()
    }
    // 添加这段配置
    configurations.all {
        resolutionStrategy {
            force 'com.google.android.gms:play-services-measurement-base:17.2.1'
            force 'com.google.firebase:firebase-iid:20.0.0'
        }
    }
}

3. 清理缓存并重新构建

执行以下命令清理项目缓存,重新获取依赖并编译:

flutter clean
flutter pub get
flutter run

额外建议

你的Flutter版本(v1.9.1+hotfix.6)比较老旧,虽然上面的方法能解决当前问题,但长期来看建议升级到较新的稳定版Flutter,这样依赖生态的兼容性会更好,也能获得更多新特性和Bug修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:36:47