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

Flutter 3.24.3 Windows构建Firebase与CMake错误求助

问题分析

升级Flutter到3.24.3后构建Windows应用时,CMake报错找不到Firebase C++ SDK的CMakeLists.txt文件,后续连锁出现目标不存在的错误。核心原因是Firebase C++ SDK未被正确下载或提取到指定路径,同时代码中存在Firebase重复初始化的问题。

解决方案

1. 彻底清理缓存与依赖

  • 删除项目根目录下的build/windows文件夹
  • 删除flutter/ephemeral/.plugin_symlinks目录下所有以firebase_开头的文件夹
  • 执行命令:
    flutter clean
    flutter pub get
    

2. 手动配置Firebase C++ SDK

  • 下载与当前Firebase Flutter插件版本兼容的Firebase C++ SDK(例如firebase_core: ^3.5.0需匹配对应SDK版本)
  • 将SDK解压到路径D:/programing/Flutter/admin_dashboard/build/windows/x64/extracted/firebase_cpp_sdk_windows,确保该目录下存在CMakeLists.txt文件
  • 或者在项目的windows/CMakeLists.txt头部添加SDK路径指定:
    set(FIREBASE_CPP_SDK_PATH "你的SDK解压绝对路径")
    

3. 对齐Firebase插件与Flutter版本兼容性

  • 升级Firebase插件到支持Flutter 3.24.3的最新版本,执行命令:
    flutter pub upgrade firebase_core cloud_firestore firebase_storage
    
  • 升级后再次执行flutter pub get同步依赖

4. 修复main.dart中的重复初始化问题

main函数中已经完成Firebase初始化,但MyApp的FutureBuilder又重复调用Firebase.initializeApp(),导致冗余操作,修改如下:

// 方案1:直接返回SplashScreen
home: const SplashScreen()

// 方案2:保留FutureBuilder但使用已完成的Future
home: FutureBuilder(
  future: Future.value(true),
  builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.done) {
      return const SplashScreen();
    }
    return const Center(child: CircularProgressIndicator());
  },
)

5. 检查Visual Studio环境配置

  • 确认Visual Studio 2022已安装**Desktop development with C++**工作负载,包含CMake工具、最新Windows SDK组件
  • 以管理员身份运行终端或Visual Studio,避免权限不足导致SDK文件无法写入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:32:01