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!"),
),
);
}
}
我 运行正在 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!"),
),
);
}
}