在混合開發模式下進行除錯

除錯混合開發的模組

當你將 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