【问题标题】:Flutter beta hot reload in VSCode works for web but not iOS and Android (which works in Android studio)VSCode 中的 Flutter beta 热重载适用于 Web,但不适用于 iOS 和 Android(适用于 Android Studio)
【发布时间】:2020-11-01 09:55:10
【问题描述】:

我正在运行 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.

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

更新

我在dart-code 开了一个bug report

【问题讨论】:

    标签: android ios flutter visual-studio-code hot-reload


    【解决方案1】:

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

    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!"),
          ),
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2017-08-20
      相关资源
      最近更新 更多