无法运行Flutter项目 运行main.dart报Dart视图提供程序错误
问题说明
运行Flutter项目的main.dart文件时触发异常,IDE内Dart代码语法高亮完全失效,在2021、2022两个版本的JetBrains系IDE(Android Studio/IntelliJ IDEA)中均会复现该问题,完整报错信息如下:
Language Language: Dart doesn't participate in view provider com.jetbrains.lang.dart.psi.impl.DartExpressionCodeFragmentImpl$1{vFile=LightVirtualFile: /dummy.dart, content=VirtualFileContent{size=0}, eventSystemEnabled=true}: [Language: TEXT]
故障根因
该问题属于Dart插件的PSI(程序结构接口)索引缓存损坏故障。报错里提到的/dummy.dart是IDE运行时生成的内存虚拟文件,不属于项目真实文件,当缓存的语言关联配置错乱时,插件会把Dart代码错误关联到纯文本解析器,直接导致依赖PSI索引的语法高亮、代码补全、静态检查功能全部失效。
修复方案
按顺序操作,每一步完成后验证问题是否解决,不需要一次性做完所有步骤:
- 第一步:清理IDE索引缓存
打开IDE菜单选择File > Invalidate Caches...,勾选Clear file system cache and local history选项,点击Invalidate and Restart,等待IDE重启完成、全量索引结束后检查功能是否恢复。 - 第二步:校验插件状态
如果清理缓存无效,打开Settings > Plugins,确认Dart、Flutter两个插件均为启用状态,没有被误关。如果插件已启用仍报错,先禁用两个插件重启IDE,再重新启用插件再次重启。 - 第三步:校验SDK配置
打开Settings > Languages & Frameworks,分别检查Dart、Flutter的SDK路径配置是否正确,确保Dart SDK为Flutter目录下内置的对应版本,不存在版本不匹配、路径指向损坏文件的问题。 - 第四步:强制清理残留缓存
完全关闭IDE,删除项目根目录下的.idea文件夹(操作前可备份自定义的IDE运行、代码风格配置),同时删除项目根目录下的.dart_tool缓存文件夹,之后重新打开IDE导入项目,等待索引完成即可。
注意:不要在项目目录下手动创建
dummy.dart文件尝试修复,该文件是IDE运行时生成的内存虚拟文件,磁盘上不会真实存在,手动创建同名文件反而会干扰IDE正常的代码片段解析逻辑。
内容的提问来源于stack exchange,提问作者Johannes Mayer
相关产品推荐
相关产品推荐

