颤振导入随机停止工作,没有明显的原因
Posted
技术标签:
【中文标题】颤振导入随机停止工作,没有明显的原因【英文标题】:Flutter imports randomly stop working, for no apparent reason 【发布时间】:2019-12-23 13:45:23 【问题描述】:随着我们正在进行的项目越来越大,一位同事开始面临很多涉及pubspec.yaml
的问题。他过去常常通过手动删除 Dart 缓存的依赖项来摆脱它们,但这次他遇到了一个看起来无法解决的问题。
在我们自己的包的lib
目录中导入库时,import 'package:...'
不起作用,只有相对路径。例如,考虑以下结构:
my_package
└─ lib
├─ utils.dart
└─ api.dart
如果他尝试在api.dart
中导入utils.dart
,则只能使用相对路径:
import 'utils.dart'; // Works!
import 'package:my_package/utils.dart'; // Error: Target of URI doesn't exist: package:my_package/utils.dart.
这种行为并不一致,因为项目在相同的上下文中有许多其他模块,不需要使用相对路径来导入。此外,团队中没有其他人遇到此问题,但团队中的另一个人突然开始遇到同样的问题。正在蔓延!我们尝试重新安装 Dart、Flutter、IntelliJ,但错误仍然存在。
如果我们删除项目并从 git 再次克隆它,问题就会消失。然而,令人惊讶的是,一旦我们重新启动并使 IntelliJ 的缓存无效,错误就会返回。
奇怪的是,这些错误不会干扰项目的执行,它仍然能够运行。但由于导入中断,IDE 无法链接到该文件,也不会进行常规语法分析。
对解决这个问题有什么想法,甚至如何开始寻找解决方案?
【问题讨论】:
我在使用 vs 代码时遇到了同样的问题,我遇到了一个答案,因为您的颤振项目位于代码中打开的文件夹的子文件夹中,不确定它是否适用于 intelliJ ***.com/a/47831134/10409567 @Ggriffo 我检查了您的链接,但不幸的是,这不是我们的情况。谢谢。 这也是我最近在 vscode 上遇到的一个错误。通常重新加载 IDE 就足够了。可能是一个错误 使用flutter build clean然后重启ide 【参考方案1】:这已在 Flutter v1.9.1+hotfix.2 中解决。
【讨论】:
【参考方案2】:如果您使用的是 android studio,只需使用无效缓存 + 重启选项 https://prnt.sc/1q2h8j7(查看截图)
【讨论】:
OP 明确指出无效缓存和重新启动会触发问题。此外,还有一个已经被接受的答案以上是关于颤振导入随机停止工作,没有明显的原因的主要内容,如果未能解决你的问题,请参考以下文章