颤振导入随机停止工作,没有明显的原因

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 明确指出无效缓存和重新启动会触发问题。此外,还有一个已经被接受的答案

以上是关于颤振导入随机停止工作,没有明显的原因的主要内容,如果未能解决你的问题,请参考以下文章

PHP-cgi 随机停止工作而没有错误日志

Django登录随机停止工作

添加 if 语句后,颤振 onTap 错误 onTap 停止工作

Android Widget 随机停止工作

显示的响应变体停止工作

Paypal Sandbox 突然停止发送 IPN