在混合开发模式下进行调试

调试混合开发的模块

当你将 Flutter 模块集成到项目中并使用 Flutter 的平台 APIs 来运行 Flutter 引擎和/或 UI 时,你可以与平时运行 Android 或 iOS 应用程序一样,构建和运行你的应用。

但就目前而言,Flutter 需要在 FlutterActivityFlutterViewController 中展示 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 来连接你的应用。

flutter attach via terminal
flutter attach via terminal

VS Code

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

flutter attach via VS Code
flutter attach via VS Code

或者,在你的 Flutter 模块下创建一个 .vscode/launch.json 文件,使用 Run > Start Debugging 命令或按下 F5

{
  name: "Flutter: Attach",
  request: "attach",
  type: "dart",
}

IntelliJ / Android Studio

选择要运行 Flutter 模块的设备,然后点击右边的 flutter attach 按钮。

flutter attach via IntelliJ
flutter attach via IntelliJ