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

Flutter调用OpenAI API时出现dart:html缺失编译错误求助

解决'dart:html'缺失与speech_to_text_web.dart编译错误

问题根源

这个错误本质是speech_to_text的Web实现代码被错误引入到非Web平台(Android/iOS)的编译流程中,即便关闭Web配置,依赖树里仍可能残留Web代码引用。

分步解决方案

1. 约束依赖的平台范围

在pubspec.yaml中调整speech_to_text相关依赖,避免Web代码被打包到移动端:

  • 若不需要Web支持,直接移除speech_to_text_web的显式依赖;
  • 若需跨平台,用条件依赖限定:
dependencies:
  speech_to_text: ^6.5.0 # 替换为你当前使用的版本
dev_dependencies:
  speech_to_text_web: ^4.0.0

或者在代码中使用条件导入,确保非Web平台不加载Web代码:

import 'package:speech_to_text/speech_to_text.dart'
    if (dart.library.html) 'package:speech_to_text_web/speech_to_text_web.dart';

2. 彻底清理缓存并重建

执行以下命令清除所有缓存,重新拉取依赖:

flutter clean
flutter pub cache clean
flutter pub get

手动删除项目根目录下的.dart_tool和build文件夹后,再重新编译项目。

3. 确认编译目标平台

确保编译命令指向移动端,而非Web:

# 编译Android
flutter run -d android
# 编译iOS
flutter run -d ios

若之前开启过Web支持,执行flutter config --no-enable-web关闭,之后重启IDE生效。

4. 重置IDE缓存配置

IDE缓存可能残留Web相关配置,尝试:

  • Android Studio:点击File -> Invalidate Caches...,选择清除缓存并重启;
  • VS Code:按下Ctrl+Shift+P,输入Reload Window重载窗口。

5. 强制排除间接依赖的Web包

如果speech_to_text_web是被其他依赖间接引入的,在pubspec.yaml中添加强制排除:

dependency_overrides:
  speech_to_text_web:

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:55:02