安装Melos后Android Studio索引Flutter项目时崩溃求助
解决Flutter+Melos项目中Android Studio索引时的IllegalStateException异常
问题场景
使用Melos管理的Flutter项目,在Android Studio 2021.3.1(Dart插件版本213.7371)中,IDE尝试索引项目时抛出以下异常,导致无法正常使用:
java.lang.IllegalStateException: Exclude folder file://C:/Dev/Projects/mobile-websales-git/.dart_tool must be under content entry file://C:/Dev/Projects/mobile-websales-git/. at com.intellij.workspaceModel.ide.impl.legacyBridge.module.roots.ModifiableContentEntryBridge.addExcludeFolder(ModifiableContentEntryBridge.kt:111) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.roots.ModifiableContentEntryBridge.addExcludeFolder(ModifiableContentEntryBridge.kt:126) at com.intellij.openapi.roots.ModuleRootModificationUtil.lambda$updateExcludedFolders$12(ModuleRootModificationUtil.java:168) at com.intellij.openapi.roots.ModuleRootModificationUtil.lambda$updateModel$9(ModuleRootModificationUtil.java:134) at com.intellij.openapi.roots.ModuleRootModificationUtil.modifyModel(ModuleRootModificationUtil.java:142) at com.intellij.openapi.roots.ModuleRootModificationUtil.updateModel(ModuleRootModificationUtil.java:133) at com.intellij.openapi.roots.ModuleRootModificationUtil.updateExcludedFolders(ModuleRootModificationUtil.java:161) at com.jetbrains.lang.dart.DartStartupActivity.excludeBuildAndToolCacheFolders(DartStartupActivity.java:97) at com.jetbrains.lang.dart.DartStartupActivity.lambda$runActivity$2(DartStartupActivity.java:64) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214) at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348) ...
解决方案
- 检查并修复模块内容根配置
打开File > Project Structure > Modules,选中项目根模块,确认Content Root指向项目根目录C:/Dev/Projects/mobile-websales-git/。如果.dart_tool已被错误添加为排除项,先移除它,再重新手动添加到排除文件夹列表。 - 清除IDE缓存并重启
执行File > Invalidate Caches... > Invalidate and Restart,让IDE彻底清除旧缓存并重新生成索引配置,多数路径识别类问题都能通过这个操作解决。 - 调整Dart插件版本适配IDE
当前Dart插件版本213.7371和AS 2021.3.1属于同系列适配版本,但可能和Melos的多模块结构存在兼容性冲突。可以尝试将Dart插件更新到该IDE版本支持的最新稳定版,或者回退到更适配的旧版本。 - 重建
.dart_tool目录
关闭Android Studio,手动删除项目根目录下的.dart_tool文件夹,然后在终端执行melos bootstrap(或单个模块执行flutter pub get)重新生成该目录,再打开IDE重新索引项目。
内容的提问来源于stack exchange,提问作者cheiser
相关产品推荐
相关产品推荐

