VSCode 中的 Flutter beta 热重载适用于 Web,但不适用于 iOS 和 Android(适用于 Android Studio)
Posted
技术标签:
【中文标题】VSCode 中的 Flutter beta 热重载适用于 Web,但不适用于 iOS 和 Android(适用于 Android Studio)【英文标题】:Flutter beta hot reload in VSCode works for web but not iOS and Android (which works in 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。
【问题讨论】:
【参考方案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!"),
),
);
【讨论】:
以上是关于VSCode 中的 Flutter beta 热重载适用于 Web,但不适用于 iOS 和 Android(适用于 Android Studio)的主要内容,如果未能解决你的问题,请参考以下文章