Flutter集成flutter_tts安卓调试报错找不到dart:js/dart:html如何解决
问题原因
报错本质是你在跨平台代码中直接导入了仅Web端可用的flutter_tts_web.dart实现包,这个包依赖dart:js、dart:html两个Web专属Dart库,安卓端编译环境不存在这两个库,因此触发编译失败。
你导入该包只是为了使用TtsState枚举类型,实际上flutter_tts 3.x及以上版本已经把TtsState直接导出在主包中,完全不需要单独引入Web实现包。
修复步骤
- 删除代码中错误的导入语句:
// 删掉这一行即可 import 'package:flutter_tts/flutter_tts_web.dart'; - 执行命令清理旧编译缓存,重新拉取依赖:
flutter clean flutter pub get - 重新编译运行即可,
TtsState枚举可以直接从已导入的package:flutter_tts/flutter_tts.dart中获取,安卓端编译时不会再加载Web专属依赖,报错会直接消失。
补充:如果后续需要编写分平台的差异化TTS逻辑,不要直接导入平台实现包,使用Dart条件导入语法按需加载对应平台实现即可,避免非目标平台加载不兼容的依赖。
内容的提问来源于stack exchange,提问作者Cleopas Mwape
相关产品推荐
相关产品推荐

