Flutter:为什么包的变化(flutter-tools)没有影响(在 flutter doctor 中)?

Flutter: Why does change in package (flutter-tools) has no impact (in flutter doctor)?

flutter doctor 有问题 -

 Oops; flutter has exited unexpectedly.
    Sending crash report to Google.
    Crash report sent (report ID: a5fb11a50ca9bb90)
    Unhandled exception:
    NoSuchMethodError: The getter 'isMacOS' was called on null.
    Receiver: null
    Tried calling: isMacOS
    #0      Object.noSuchMethod (dart:core-patch/dart:core/object_patch.dart:46)
    #1      IOSDevices.supportsPlatform (package:flutter_tools/src/ios/devices.dart:34)
    #2      DeviceManager._platformDiscoverers.<anonymous closure> (package:flutter_tools/src/device.dart:85)
    #3      WhereIterator.moveNext (dart:_internal/iterable.dart:439)

好像是flutter的bug。 (我不完全知道我做了什么,所以无法帮助重现它,但我被这个问题困住了。重新安装 flutter 也没有帮助。)

我正在尝试对 ios/devices.dart 中的平台检查进行硬编码,因为我在 windows 上并且正在为 android 开发。

但我的改变—— `

@override
  bool get supportsPlatform {
    return false;

` 没有影响。

flutter doctor 仍然在相同的行号处抛出相同的错误。

会不会是缓存问题?还是 build 问题? (目前看来 packages need not be built 但也许他们会这样?)

不是在每次 flutter 命令调用时重新编译 flutter 工具可执行文件,而是将 snapshot 保存在缓存中,该缓存会在您升级 flutter 时重建(或者实际上只是在每个 git致力于幕后的回购)。

要手动触发重建,您可以删除您的 $FLUTTER_ROOT/bin/cache/flutter_tools.* 并且 flutter 工具将在您下次调用 flutter

时重建