Flutter Web项目编译失败求助(Ubuntu 22.04)
解决Flutter Web编译失败的两个问题
问题1:PreferredSizeWidget无法作为mixin使用
报错位置:lib/SCREENS/Web_Page/Landing_Page/Web_Widgets/web_appbar.dart:10
原因:PreferredSizeWidget是抽象类(接口),并非mixin类,不能用with关键字混入。
修复方法:
- 将
with替换为implements - 强制实现
preferredSize属性
修改后的代码示例:
class webAppBar extends StatelessWidget implements PreferredSizeWidget { @override final Size preferredSize; webAppBar({Key? key}) : preferredSize = const Size.fromHeight(kToolbarHeight), // 可按需调整高度 super(key: key); @override Widget build(BuildContext context) { // 原有build逻辑 } }
问题2:AssetManifest命名冲突(google_fonts包)
报错位置:google_fonts-3.0.1/lib/src/google_fonts_base.dart
原因:旧版本google_fonts包内部的AssetManifest类与Flutter框架内置的同名类重名,导致冲突。
修复方法:
- 打开项目根目录的
pubspec.yaml文件 - 将
google_fonts依赖升级到最新稳定版(例如^6.1.0或更高):dependencies: google_fonts: ^6.1.0 - 执行命令更新依赖:
flutter pub get
完成上述修复后,重新执行构建部署命令即可:
flutter clean && flutter pub get && flutter build web --web-renderer html --release && firebase deploy --only hosting
内容的提问来源于stack exchange,提问作者isa
相关产品推荐
相关产品推荐

