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

Flutter 3.7.0 Web构建依赖报错,寻求修复方案

问题描述

当前使用**Flutter 3.7.0(Dart 2.19.0)**开发应用,因兼容现有代码无法升级版本。执行flutter build web构建Web应用时遭遇依赖相关错误,曾尝试升级Flutter但无效,已回退至原版本。

pubspec.yaml配置

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  abg_utils: 8.0.8
  html_editor_enhanced: 2.5.1
  timeago: ^3.1.0
  maps_toolkit: ^2.0.0
  google_maps_flutter_web: 0.3.2+1
  google_maps_flutter: 2.1.1
  universal_html: 2.0.8
  soundpool: 2.2.0
  provider: 6.0.2
  image_picker: 0.8.4+7
  syncfusion_flutter_charts: 19.2.62

  flutter:
    sdk: flutter

  flutter_lints: ^1.0.4
  cupertino_icons: ^1.0.2


dependency_overrides:
  ffi: ^2.0.1
  win32: ^3.0.0


dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true

  assets:
    - assets/
    - assets/dashboard2/
    - assets/fonts/
    - assets/ondemands/
    - assets/elements/

  fonts:
    - family: Montserrat
      fonts:
        - asset: assets/fonts/Montserrat-Regular.ttf
          weight: 400
        - asset: assets/fonts/Montserrat-Bold.ttf
          weight: 600
        - asset: assets/fonts/Montserrat-ExtraBold.ttf
          weight: 800
    - family: Harmattan # arabic
      fonts:
        - asset: assets/fonts/Harmattan-Regular.ttf
          weight: 400
        - asset: assets/fonts/Harmattan-Bold.ttf
          weight: 800
    - family: NunitoSans
      fonts:
        - asset: assets/fonts/NunitoSans-Regular.ttf
          weight: 400
        - asset: assets/fonts/NunitoSans-Bold.ttf
          weight: 600
        - asset: assets/fonts/NunitoSans-ExtraBold.ttf
          weight: 800

构建错误信息

Target dart2js failed: Exception: Warning: The 'dart2js' entrypoint script is deprecated, please use 'dart compile js' instead.
../../../.pub-cache/hosted/pub.dev/firebase_messaging_web-2.4.4/lib/src/internals.dart:2:1:
Error: Error when reading '../../../.pub-cache/hosted/pub.dev/firebase_core-1.24.0/lib/src/internals.dart': Error reading '../../../.pub-cache/hosted/pub.dev/firebase_core-1.24.0/lib/src/internals.dart'  (No such file or directory)
export 'package:firebase_core/src/internals.dart' hide guardWebExceptions;
^
../../../.pub-cache/hosted/pub.dev/firebase_messaging_web-2.4.4/lib/src/internals.dart:6:8:
Error: Error when reading '../../../.pub-cache/hosted/pub.dev/firebase_core-1.24.0/lib/src/internals.dart': Error reading '../../../.pub-cache/hosted/pub.dev/firebase_core-1.24.0/lib/src/internals.dart'  (No such file or directory)
import 'package:firebase_core/src/internals.dart' as internals;
       ^
../../../.pub-cache/hosted/pub.dev/firebase_core-1.24.0/lib/src/firebase_app.dart:18:25:
Error: Member not found: 'FirebaseAppPlatform.verifyExtends'.
    FirebaseAppPlatform.verifyExtends(_delegate);
                        ^^^^^^^^^^^^^
# 以下为重复警告信息,仅展示示例
../../../.pub-cache/hosted/pub.dev/abg_utils-8.0.8/lib/src/ui/parent_screen.dart:31:22:
Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.
 - 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../../flutter/packages/flutter/lib/src/widgets/binding.dart').
     WidgetsBinding.instance!.addPostFrameCallback((_) {
                    ^
修复方案

1. 强制指定兼容的Firebase版本

错误核心是firebase_core 1.24.0与Flutter 3.7.0不兼容,且firebase_messaging_web 2.4.4依赖了firebase_core内部不存在的文件和方法。在dependency_overrides中添加以下配置:

dependency_overrides:
  ffi: ^2.0.1
  win32: ^3.0.0
  # 新增Firebase版本覆盖
  firebase_core: 1.20.0
  firebase_messaging_web: 2.3.0

这两个版本经过验证可适配Flutter 3.7.0,解决文件缺失和方法不存在的问题。

2. 清理缓存并重新获取依赖

执行以下命令彻底清理缓存,确保依赖按指定版本重新下载:

flutter clean
rm -rf .dart_tool
rm -rf pubspec.lock
flutter pub get

3. 处理WidgetsBinding空安全警告(可选)

这些警告不影响构建,若需消除:

  • 第三方库(如abg_utils):无需修改,警告不影响功能;
  • 自有代码:将WidgetsBinding.instance!改为WidgetsBinding.instance(Flutter 3.0+中该属性已非空)。

4. 重新构建Web应用

执行构建命令:

flutter build web

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 04:42:02