VSCode 中的 Flutter beta 热重载适用于网络,但不适用于 iOS 和 Android(适用于 Android studio)

Flutter beta hot reload in VSCode works for web but not iOS and Android (which works in Android studio)

我 运行正在 Mac Catalina 并安装了 Android Studio 和 VSCode

❯ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 1.19.0-4.3.pre, on Mac OS X 10.15.5 19F101, locale en-GB)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.47.0)
[✓] Connected device (3 available)

• No issues found!

我有一个非常简单的应用程序

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: Center(
        child: Text("Hello World!"),
      ),
    ),
  );
}

如果我 运行 来自 Android Studio 的应用程序,那么热重载就可以正常工作,例如更改文本并保存将更新任何设备上的文本(iOS、Android 或 Chrome)。

但如果我在 VSCode 中执行相同操作,即 F5 (Debug: Start debugging),则热重载仅适用于 Web。在调试控制台中,我每次进行更改并保存时都会看到以下内容。

Reloaded 1 of 502 libraries in 167ms.

但屏幕上没有更新(除了 运行ning Chrome 时,调试控制台中的输出看起来与其他控制台中的输出相同。)。我觉得这很奇怪!

更新

我在 dart-code 开了一个 bug report

天哪。我忘了将应用程序放入无状态应用程序中。我的错!

import 'package:flutter/material.dart';

void main() {
  runApp(
    MyApp(),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: Text("Hello World!"),
      ),
    );
  }
}