在混合开发模式下进行调试
调试混合开发的模块
当你将 Flutter 模块集成到项目中并使用 Flutter 的平台 APIs 来运行 Flutter 引擎和/或 UI 时,你可以与平时运行 Android 或 iOS 应用程序一样,构建和运行你的应用。
但就目前而言,Flutter 需要在 FlutterActivity
或 FlutterViewController
中展示 UI 内容。
调试
你可能习惯于在 IDE 中运行 flutter run
或者等效的快捷命令,它会自动启动你喜爱的 Flutter 调试工具。同样的,你也可以使用所有 Flutter 的 调试功能,例如热重载、性能调试、DevTools 以及在混合开发的场景中设置断点。
这些功能由 flutter attach
机制提供。
flutter attach
可以通过不同的路径启动,例如通过 SDK 中的命令行工具、VS Code 或者 IntelliJ/Android Studio。
flutter attach
可以在你运行 FlutterEngine
时立即进行连接,并在 FlutterEngine
被释放之前一直保持连接。你可以在启动引擎之前执行 flutter attach
,它将等待下一个由引擎持有的 Dart VM 进行连接。
终端
在终端执行 flutter attach
或者 flutter attach -d deviceId
来连接你的应用。

VS Code
在 VS Code 中的状态栏中选择待调试的设备,然后在命令面板运行 Flutter: Attach to Flutter on Device 命令。

或者,在你的 Flutter 模块下创建一个 .vscode/launch.json
文件,使用 Run > Start Debugging 命令或按下 F5
。
{
name: "Flutter: Attach",
request: "attach",
type: "dart",
}
IntelliJ / Android Studio
选择要运行 Flutter 模块的设备,然后点击右边的 flutter attach
按钮。

Wireless debugging
You can debug your app wirelessly on an iOS or Android device
using flutter attach
.
iOS
On iOS, you must follow the steps below:
-
Ensure that your device is wirelessly connected to Xcode as described in the iOS setup guide.
-
Open Xcode > Product > Scheme > Edit Scheme
-
Select the Arguments tab
-
Add either
--vm-service-host=0.0.0.0
for IPv4, or--vm-service-host=::0
for IPv6 as a launch argumentYou can determine if you’re on an IPv6 network by opening your Mac’s Settings > Wi-Fi > Details (of the network you’re connected to) > TCP/IP and check to see if there is an IPv6 address section.
Android
Ensure that your device is wirelessly connected to Android Studio as described in the Android setup guide.