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

Flutter Web部署Firebase后shared_preferences报MissingPluginException错误

解决Flutter Web部署Firebase后shared_preferences报错问题

问题原因

Flutter Web的Release构建默认开启Tree Shaking优化,可能误将shared_preferences的Web平台实现代码移除,导致部署后出现插件实现找不到的错误。

解决方案

1. 确认依赖配置

检查pubspec.yaml中shared_preferences的版本(需支持Web平台),执行以下命令确保依赖安装完整:

flutter pub get

2. 强制保留插件代码

在web/index.html的<head>标签内添加脚本,阻止Tree Shaking移除shared_preferences的Web实现:

<script>
  if (typeof dartLoader !== 'undefined') {
    dartLoader.options.dartLibrariesToKeep = [
      'package:shared_preferences/shared_preferences.dart',
      'package:shared_preferences_web/shared_preferences_web.dart'
    ];
  }
</script>

3. 关闭Tree Shaking构建

使用以下命令构建Web版本,直接关闭Tree Shaking优化:

flutter build web --release --dart-define=FLUTTER_WEB_TREE_SHAKE=false

4. 提前初始化插件

在main.dart的main函数中提前初始化shared_preferences,确保插件完成注册:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 提前初始化SharedPreferences
  await SharedPreferences.getInstance();
  runApp(const MyApp());
}

5. 清理缓存重新部署

清理Flutter构建缓存和Firebase部署缓存,再重新构建部署:

flutter clean
flutter build web
firebase deploy

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:45:33