Flutter运行AVD时报dart:js缺失与无效depfile构建错误
报错根因定位
- 核心触发源:项目依赖树中引入的
js: 0.6.3包为早期Web平台专属实现,硬编码导出了仅Web编译环境可识别的dart:js库,在Android原生编译链路下无法解析该库,直接触发编译中断 - 连带无效报错:日志开头的
Invalid depfile是旧版编译缓存路径损坏导致的提示,不属于问题根源
分步解决操作
- 第一步:清理损坏的构建缓存
打开项目终端,逐行执行以下命令清空异常缓存:- 在项目根目录执行
flutter clean,删除所有旧的构建产物 - 执行
flutter pub cache repair,修复本地Pub仓库中损坏的依赖文件
- 在项目根目录执行
- 第二步:修正不兼容的依赖版本
打开项目根目录下的pubspec.yaml文件,在文件末尾添加依赖覆盖规则,强制升级js包到兼容原生平台的版本:
注意:dependency_overrides: js: ^0.6.4js 0.6.4版本已经移除了硬编码导出dart:js的逻辑,可同时兼容Web和Android/iOS原生编译环境 - 第三步:重新拉取依赖并运行项目
逐行执行以下命令完成编译链路重置:- 执行
flutter pub get拉取修正版本的依赖 - 启动AVD后重新运行项目即可正常编译
- 执行
避坑提示
- 严禁直接升级到
js 1.x大版本,该版本存在跨版本不兼容设计,会导致当前项目绝大多数依赖出现版本解析冲突,反而延长排错时间 - 如果按照上述步骤操作后仍复现相同报错,检查本地Pub缓存目录下是否存在残留的js 0.6.3缓存文件夹,手动删除后重新执行
flutter pub get即可
内容的提问来源于stack exchange,提问作者Suyash_singh
相关产品推荐
相关产品推荐

