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
相关产品推荐
相关产品推荐

