跳到主内容

使用原生语言调试器

如何将原生调试器连接到正在运行的 Flutter 应用。

如果您只使用 Dart 代码编写 Flutter 应用,可以使用 IDE 的调试器来调试您的代码。Flutter 团队推荐 VS Code。

如果您编写特定平台的插件或使用特定平台的库,可以使用原生调试器来调试代码的这一部分。

  • 要调试用 Swift 或 Objective-C 编写的 iOS 或 macOS 代码,可以使用 Xcode。
  • 要调试用 Java 或 Kotlin 编写的 Android 代码,可以使用 Android Studio。
  • 要调试用 C++ 编写的 Windows 代码,可以使用 Visual Studio。

本指南向您展示如何将两个调试器连接到您的 Dart 应用,一个用于 Dart,一个用于原生代码。

调试 Dart 代码

#

本指南介绍了如何使用 VS Code 调试您的 Flutter 应用。您也可以使用安装并配置了 Flutter 和 Dart 插件的首选 IDE。

使用 VS Code 调试 Dart 代码

#

以下步骤说明了如何使用 Dart 调试器和默认的示例 Flutter 应用。VS Code 中显示的组件在调试您自己的 Flutter 项目时也有效。

  1. 创建一个基本的 Flutter 应用。

    flutter create my_app
    
    Creating project my_app...
    Resolving dependencies in my_app...
    Got dependencies in my_app.
    Wrote 129 files.
    
    All done!
    You can find general documentation for Flutter at: https://docs.flutterdart.cn/
    Detailed API documentation is available at: https://api.flutter.dev/
    If you prefer video documentation, consider: https://www.youtube.com/c/flutterdev
    
    In order to run your application, type:
    
      $ cd my_app
      $ flutter run
    
    Your application code is in my_app/lib/main.dart.
    
    cd my_app
    
  2. 使用 VS Code 打开 Flutter 应用中的 lib\main.dart 文件。

  3. 单击虫子图标 (VS Code's bug icon to trigger the debugging mode of a Flutter app)。这将在 VS Code 中打开以下面板

    • 调试
    • 调试控制台
    • Widget 检查器

    首次运行调试器需要的时间最长。

  4. 测试调试器。

    a. 在 main.dart 中,单击此行

    dart
    _counter++;
    

    b. 按 Shift + F9。这将在 _counter 变量递增的地方添加一个断点。

    c. 在应用中,单击 + 按钮以递增计数器。应用将暂停。

    d. 此时,VS Code 将显示

    • 编辑器组
      • main.dart 中高亮的断点
      • Widget 检查器Widget 树 中,Flutter 应用的 Widget 层次结构
    • 侧边栏
      • 调用堆栈 部分中,应用的当前状态
      • 变量 部分中,this 局部变量的值
    • 面板
      • 调试控制台 中,Flutter 应用的日志

VS Code Flutter 调试器

#

VS Code 的 Flutter 插件向 VS Code 用户界面添加了许多组件。

VS Code 界面更改

#

启动后,Flutter 调试器会将调试工具添加到 VS Code 界面。

以下屏幕截图和表格解释了每个工具的用途。

VS Code with the Flutter plugin UI additions

屏幕截图中的高亮颜色栏、面板或选项卡内容
黄色 变量 Flutter 应用中当前变量值的列表
监视您选择在 Flutter 应用中跟踪的项目列表
调用堆栈Flutter 应用中活动子例程的堆栈
断点您设置的异常和断点列表
绿色 <Flutter 文件> 您正在编辑的文件
粉色 Widget 检查器 正在运行的 Flutter 应用中 Widget 的层次结构
蓝色 布局资源管理器 Flutter 如何在 Widget 检查器中放置您选择的 Widget 的可视化效果
Widget 详细信息树 Widget 检查器中选择的 Widget 的属性列表
橙色 问题 Dart 分析器在当前 Dart 文件中发现的问题列表
输出Flutter 应用在构建应用时返回的响应
调试控制台 Flutter 应用在调试时生成的日志或错误消息
终端包含在 VS Code 中的系统 shell 提示符

要更改面板(以橙色显示)在 VS Code 中的显示位置,请转到 视图 > 外观 > 面板位置

VS Code Flutter 调试工具栏

#

工具栏允许您使用任何调试器进行调试。您可以逐步进入、退出和跨越 Dart 语句,热重载或恢复应用。

Flutter debugger toolbar in VS Code

图标动作默认键盘快捷键
Small blue vertical line with a blue triangle that indicates playing or resuming the Flutter app
开始或恢复F5
Small blue double vertical line that indicates pausing the Flutter app
暂停F6
Small blue arched arrow over a blue circle that indicates skipping the current block or statement in the Flutter app
逐行执行F10
Small blue downward arrow over a blue circle that indicates going into the next function in a Flutter app
逐过程执行F11
Small blue upward arrow over a blue circle that indicates exiting the current function after one passthrough in a Flutter app
逐函数执行Shift + F11
Small yellow lightning bolt that indicates reloading the UI of a Flutter app without resetting any state values
热重载Ctrl + F5
Small green almost circular arrow that indicates reloading the UI of a Flutter app and resetting any state values
热重启Shift + Special + F5
Red empty square that indicates you want to stop the running Flutter app
停止Shift + F5
Small blue magnifying class with the Flutter logo inside it that opens the Widget inspector
打开 Widget 检查器

更新测试 Flutter 应用

#

在本指南的其余部分,您需要更新测试 Flutter 应用。此更新添加了用于调试的原生代码。

  1. 使用您首选的 IDE 打开 lib/main.dart 文件。

  2. main.dart 的内容替换为以下代码。

    展开以查看此示例的 Flutter 代码
    lib/main.dart
    dart
    // Copyright 2023 The Flutter Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    
    import 'package:flutter/material.dart';
    import 'package:url_launcher/url_launcher.dart';
    
    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'URL Launcher',
          theme: ThemeData(
            colorSchemeSeed: Colors.purple,
            brightness: Brightness.light,
          ),
          home: const MyHomePage(title: 'URL Launcher'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      const MyHomePage({super.key, required this.title});
      final String title;
    
      @override
      State<MyHomePage> createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      Future<void>? _launched;
    
      Future<void> _launchInBrowser(Uri url) async {
        if (!await launchUrl(
          url,
          mode: LaunchMode.externalApplication,
        )) {
          throw Exception('Could not launch $url');
        }
      }
    
      Future<void> _launchInWebView(Uri url) async {
        if (!await launchUrl(
          url,
          mode: LaunchMode.inAppWebView,
        )) {
          throw Exception('Could not launch $url');
        }
      }
    
      Widget _launchStatus(BuildContext context, AsyncSnapshot<void> snapshot) {
        if (snapshot.hasError) {
          return Text('Error: ${snapshot.error}');
        } else {
          return const Text('');
        }
      }
    
      @override
      Widget build(BuildContext context) {
        final Uri toLaunch = Uri(
            scheme: 'https',
            host: 'docs.flutter.dev',
            path: 'testing/native-debugging');
        return Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Padding(
                  padding: const EdgeInsets.all(16),
                  child: Text(toLaunch.toString()),
                ),
                FilledButton(
                  onPressed: () => setState(() {
                    _launched = _launchInBrowser(toLaunch);
                  }),
                  child: const Text('Launch in browser'),
                ),
                const Padding(padding: EdgeInsets.all(16)),
                FilledButton(
                  onPressed: () => setState(() {
                    _launched = _launchInWebView(toLaunch);
                  }),
                  child: const Text('Launch in app'),
                ),
                const Padding(padding: EdgeInsets.all(16.0)),
                FutureBuilder<void>(future: _launched, builder: _launchStatus),
              ],
            ),
          ),
        );
      }
    }
    
  3. 要将 url_launcher 包添加为依赖项,请运行 flutter pub add

    flutter pub add url_launcher
    
    Resolving dependencies...
      collection 1.17.1 (1.17.2 available)
    + flutter_web_plugins 0.0.0 from sdk flutter
      matcher 0.12.15 (0.12.16 available)
      material_color_utilities 0.2.0 (0.8.0 available)
    + plugin_platform_interface 2.1.4
      source_span 1.9.1 (1.10.0 available)
      stream_channel 2.1.1 (2.1.2 available)
      test_api 0.5.1 (0.6.1 available)
    + url_launcher 6.1.11
    + url_launcher_android 6.0.36
    + url_launcher_ios 6.1.4
    + url_launcher_linux 3.0.5
    + url_launcher_macos 3.0.5
    + url_launcher_platform_interface 2.1.3
    + url_launcher_web 2.0.17
    + url_launcher_windows 3.0.6
    Changed 10 dependencies!
    
  4. 要检查代码库的更改

    1. 在 Linux 或 macOS 中,运行此 find 命令。

      find ./ -mmin -120
      
      ./ios/Flutter/Debug.xcconfig
      ./ios/Flutter/Release.xcconfig
      ./linux/flutter/generated_plugin_registrant.cc
      ./linux/flutter/generated_plugins.cmake
      ./macos/Flutter/Flutter-Debug.xcconfig
      ./macos/Flutter/Flutter-Release.xcconfig
      ./macos/Flutter/GeneratedPluginRegistrant.swift
      ./pubspec.lock
      ./pubspec.yaml
      ./windows/flutter/generated_plugin_registrant.cc
      ./windows/flutter/generated_plugins.cmake
      
    2. 在 Windows 中,在命令提示符中运行此命令。

      Get-ChildItem C:\dev\example\ -Rescurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)}
      
      C:\dev\example\ios\Flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                Debug.xcconfig
                      8/1/2025   9:15 AM                Release.xcconfig
      
      C:\dev\example\linux\flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                generated_plugin_registrant.cc
                      8/1/2025   9:15 AM                generated_plugins.cmake
      
      C:\dev\example\macos\Flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                Flutter-Debug.xcconfig
                      8/1/2025   9:15 AM                Flutter-Release.xcconfig
                      8/1/2025   9:15 AM                GeneratedPluginRegistrant.swift
      
      C:\dev\example\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                pubspec.lock
                      8/1/2025   9:15 AM                pubspec.yaml
      
      C:\dev\example\windows\flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                generated_plugin_registrant.cc
                      8/1/2025   9:15 AM                generated_plugins.cmake
      

安装 url_launcher 为 Flutter 应用目录中的所有目标平台添加了配置文件和代码文件。

同时调试 Dart 和原生语言代码

#

本节介绍如何调试 Flutter 应用中的 Dart 代码以及使用其常规调试器的任何原生代码。此功能使您能够在编辑原生代码时利用 Flutter 的热重载。

使用 Android Studio 调试 Dart 和 Android 代码

#

要调试原生 Android 代码,您需要一个包含 Android 代码的 Flutter 应用。在本节中,您将学习如何将 Dart、Java 和 Kotlin 调试器连接到您的应用。您不需要 VS Code 来调试 Dart 和 Android 代码。本指南包括 VS Code 说明,以便与 Xcode 和 Visual Studio 指南保持一致。

本节使用在 更新测试 Flutter 应用 中创建的相同的示例 Flutter url_launcher 应用。

在终端中构建 Android 版本的 Flutter 应用

#

要生成所需的 Android 平台依赖项,请运行 flutter build 命令。

flutter build appbundle --debug
Running Gradle task 'bundleDebug'...                               27.1s
✓ Built build/app/outputs/bundle/debug/app-debug.aab.

首先使用 VS Code 开始调试

#

如果您使用 VS Code 调试大部分代码,请从本节开始。

  1. 要打开 Flutter 应用目录,请转到 文件 > 打开文件夹... 并选择 my_app 目录。

  2. 打开 lib/main.dart 文件。

  3. 如果您可以为多个设备构建应用,则必须先选择设备。

    转到 视图 > 命令面板...

    你也可以按 Ctrl / Cmd + Shift + P

  4. 键入 flutter select

  5. 单击 Flutter: 选择设备 命令。

  6. 选择您的目标设备。

  7. 单击调试图标 (VS Code's bug icon to trigger the debugging mode of a Flutter app)。这将打开 调试 面板并启动应用。等待应用在设备上启动,并等待调试面板指示 已连接。调试器首次启动需要更长时间。后续启动启动更快。

    此 Flutter 应用包含两个按钮

    • 在浏览器中启动:此按钮在设备的默认浏览器中打开此页面。
    • 在应用中启动:此按钮在您的应用中打开此页面。此按钮仅适用于 iOS 或 Android。桌面应用启动浏览器。

将 Flutter 进程附加到 Android Studio

#
  1. 单击 将调试器附加到 Android 进程 按钮。(Tiny green bug superimposed with a light grey arrow)

    :::提示 如果此按钮未出现在 项目 菜单栏中,请验证您是否打开了 Flutter 应用程序 项目,而不是 Flutter 插件。::

  2. 进程 对话框为每个连接的设备显示一个条目。选择 显示所有进程 以显示每个设备的可用进程。

  3. 选择要附加到的进程。对于本指南,选择使用 Emulator Pixel_5_API_33com.example.my_app 进程。

  4. 调试 面板中找到 Android 调试器 选项卡。

  5. 项目 面板中,展开 my_app_android > android > app > src > main > java > io.flutter plugins

  6. 双击 GeneratedProjectRegistrant 以在 编辑 面板中打开 Java 代码。

在本过程结束时,Dart 和 Android 调试器都与同一个进程交互。使用其中一个或两个来设置断点、检查堆栈、恢复执行等。换句话说,调试!

首先使用 Android Studio 开始调试

#

如果您使用 Android Studio 调试大部分代码,请从本节开始。

  1. 要打开 Flutter 应用目录,请转到 文件 > 打开... 并选择 my_app 目录。

  2. 打开 lib/main.dart 文件。

  3. 选择虚拟 Android 设备。转到工具栏,打开最左边的下拉菜单,然后单击 打开 Android 模拟器:<设备>

    您可以选择任何已安装的不包含 arm64 的模拟器。

  4. 从同一个菜单中,选择虚拟 Android 设备。

  5. 从工具栏,单击 运行 'main.dart'

    您也可以按 Ctrl + Shift + R

    应用在模拟器中显示后,继续下一步。

  6. 单击 将调试器附加到 Android 进程 按钮。(Tiny green bug superimposed with a light grey arrow)

    :::提示 如果此按钮未出现在 项目 菜单栏中,请验证您是否打开了 Flutter 应用程序 项目,而不是 Flutter 插件。::

  7. 进程 对话框为每个连接的设备显示一个条目。选择 显示所有进程 以显示每个设备的可用进程。

  8. 选择要附加到的进程。对于本指南,选择使用 Emulator Pixel_5_API_33com.example.my_app 进程。

  9. 调试 面板中找到 Android 调试器 选项卡。

  10. 项目 面板中,展开 my_app_android > android > app > src > main > java > io.flutter plugins

  11. 双击 GeneratedProjectRegistrant 以在 编辑 面板中打开 Java 代码。

在本过程结束时,Dart 和 Android 调试器都与同一个进程交互。使用其中一个或两个来设置断点、检查堆栈、恢复执行等。换句话说,调试!

使用 Xcode 调试 Dart 和 iOS 代码

#

要调试 iOS 代码,您需要一个包含 iOS 代码的 Flutter 应用。在本节中,您将学习如何将两个调试器连接到您的应用:VS Code 和 Xcode。您需要同时运行 VS Code 和 Xcode。

本节使用在 更新测试 Flutter 应用 中创建的相同的示例 Flutter url_launcher 应用。

在终端中构建 iOS 版本的 Flutter 应用

#

要生成所需的 iOS 平台依赖项,请运行 flutter build 命令。

flutter build ios --config-only --no-codesign --debug
Warning: Building for device with codesigning disabled. You will have to manually codesign before deploying to device.
Building com.example.myApp for device (ios)...

首先使用 VS Code 开始调试

#

如果您使用 VS Code 调试大部分代码,请从本节开始。

在 VS Code 中启动 Dart 调试器
#
  1. 要打开 Flutter 应用目录,请转到 文件 > 打开文件夹... 并选择 my_app 目录。

  2. 打开 lib/main.dart 文件。

  3. 如果您可以为多个设备构建应用,则必须先选择设备。

    转到 视图 > 命令面板...

    你也可以按 Ctrl / Cmd + Shift + P

  4. 键入 flutter select

  5. 单击 Flutter: 选择设备 命令。

  6. 选择您的目标设备。

  7. 单击调试图标 (VS Code's bug icon to trigger the debugging mode of a Flutter app)。这将打开 调试 面板并启动应用。等待应用在设备上启动,并等待调试面板指示 已连接。调试器首次启动需要更长时间。后续启动启动更快。

    此 Flutter 应用包含两个按钮

    • 在浏览器中启动:此按钮在设备的默认浏览器中打开此页面。
    • 在应用中启动:此按钮在您的应用中打开此页面。此按钮仅适用于 iOS 或 Android。桌面应用启动浏览器。
在 Xcode 中附加到 Flutter 进程
#

要在 Xcode 中附加到 Flutter 应用

  1. 前往 Debug > Attach to Process

  2. 选择 Runner。它应该位于 Attach to Process 菜单的 Likely Targets 标题下。

首先使用 Xcode 开始调试

#

如果您使用 Xcode 调试大部分代码,请从本节开始。

启动 Xcode 调试器
#
  1. 从您的 Flutter 应用目录中打开 ios/Runner.xcworkspace

  2. 使用工具栏中的 Scheme 菜单选择正确的设备。

    如果您没有偏好,请选择 iPhone Pro 14

  3. 在 Xcode 中像正常应用一样运行此 Runner。

    运行完成后,Xcode 底部的 Debug 区域会显示一条包含 Dart VM 服务 URI 的消息。它类似于以下响应

    2023-07-12 14:55:39.966191-0500 Runner[58361:53017145]
        flutter: The Dart VM service is listening on
        http://127.0.0.1:50642/00wEOvfyff8=/
    
  4. 复制 Dart VM 服务 URI。

在 VS Code 中附加到 Dart VM
#
  1. 要打开命令面板,请前往 View > Command Palette...

    您也可以按 Cmd + Shift + P

  2. 键入 debug

  3. 点击 Debug: Attach to Flutter on Device 命令。

  4. Paste an VM Service URI 框中,粘贴从 Xcode 复制的 URI 并按 Enter

使用 Xcode 调试 Dart 和 macOS 代码

#

要调试 macOS 代码,您需要一个包含 macOS 代码的 Flutter 应用。在本节中,您将学习如何将两个调试器连接到您的应用:Flutter 通过 VS Code 和 Xcode。您需要同时运行 VS Code 和 Xcode。

本节使用在 更新测试 Flutter 应用 中创建的相同的示例 Flutter url_launcher 应用。

在终端中构建 Flutter 应用的 macOS 版本

#

要生成所需的 macOS 平台依赖项,请运行 flutter build 命令。

flutter build macos --debug
Building macOS application...

首先使用 VS Code 开始调试

#
在 VS Code 中启动调试器
#
  1. 要打开 Flutter 应用目录,请转到 文件 > 打开文件夹... 并选择 my_app 目录。

  2. 打开 lib/main.dart 文件。

  3. 如果您可以为多个设备构建应用,则必须先选择设备。

    转到 视图 > 命令面板...

    你也可以按 Ctrl / Cmd + Shift + P

  4. 键入 flutter select

  5. 单击 Flutter: 选择设备 命令。

  6. 选择您的目标设备。

  7. 单击调试图标 (VS Code's bug icon to trigger the debugging mode of a Flutter app)。这将打开 调试 面板并启动应用。等待应用在设备上启动,并等待调试面板指示 已连接。调试器首次启动需要更长时间。后续启动启动更快。

    此 Flutter 应用包含两个按钮

    • 在浏览器中启动:此按钮在设备的默认浏览器中打开此页面。
    • 在应用中启动:此按钮在您的应用中打开此页面。此按钮仅适用于 iOS 或 Android。桌面应用启动浏览器。
在 Xcode 中附加到 Flutter 进程
#
  1. 要附加到 Flutter 应用,请前往 Debug > Attach to Process > Runner

    Runner 应该位于 Attach to Process 菜单的 Likely Targets 标题下。

首先使用 Xcode 开始调试

#
在 Xcode 中启动调试器
#
  1. 从您的 Flutter 应用目录中打开 macos/Runner.xcworkspace

  2. 在 Xcode 中像正常应用一样运行此 Runner。

    运行完成后,Xcode 底部的 Debug 区域会显示一条包含 Dart VM 服务 URI 的消息。它类似于以下响应

    2023-07-12 14:55:39.966191-0500 Runner[58361:53017145]
        flutter: The Dart VM service is listening on
        http://127.0.0.1:50642/00wEOvfyff8=/
    
  3. 复制 Dart VM 服务 URI。

在 VS Code 中附加到 Dart VM
#
  1. 要打开命令面板,请前往 View > Command Palette...

    您也可以按 Cmd + Shift + P

  2. 键入 debug

  3. 点击 Debug: Attach to Flutter on Device 命令。

  4. Paste an VM Service URI 框中,粘贴从 Xcode 复制的 URI 并按 Enter

使用 Visual Studio 调试 Dart 和 C++ 代码

#

要调试 C++ 代码,您需要一个包含 C++ 代码的 Flutter 应用。在本节中,您将学习如何将两个调试器连接到您的应用:Flutter 通过 VS Code 和 Visual Studio。您需要同时运行 VS Code 和 Visual Studio。

本节使用在 更新测试 Flutter 应用 中创建的相同的示例 Flutter url_launcher 应用。

在 PowerShell 或命令提示符中构建 Flutter 应用的 Windows 版本

#

要生成所需的 Windows 平台依赖项,请运行 flutter build 命令。

C:\> flutter build windows --debug
Building Windows application...                                    31.4s
√  Built build\windows\runner\Debug\my_app.exe.

首先使用 VS Code 开始调试

#

如果您使用 VS Code 调试大部分代码,请从本节开始。

在 VS Code 中启动调试器
#
  1. 要打开 Flutter 应用目录,请转到 文件 > 打开文件夹... 并选择 my_app 目录。

  2. 打开 lib/main.dart 文件。

  3. 如果您可以为多个设备构建应用,则必须先选择设备。

    转到 视图 > 命令面板...

    你也可以按 Ctrl / Cmd + Shift + P

  4. 键入 flutter select

  5. 单击 Flutter: 选择设备 命令。

  6. 选择您的目标设备。

  7. 单击调试图标 (VS Code's bug icon to trigger the debugging mode of a Flutter app)。这将打开 调试 面板并启动应用。等待应用在设备上启动,并等待调试面板指示 已连接。调试器首次启动需要更长时间。后续启动启动更快。

    此 Flutter 应用包含两个按钮

    • 在浏览器中启动:此按钮在设备的默认浏览器中打开此页面。
    • 在应用中启动:此按钮在您的应用中打开此页面。此按钮仅适用于 iOS 或 Android。桌面应用启动浏览器。
在 Visual Studio 中附加到 Flutter 进程
#
  1. 要打开项目解决方案文件,请前往 File > Open > Project/Solution…

    您也可以按 Ctrl + Shift + O

  2. 在您的 Flutter 应用目录中选择 build/windows/my_app.sln 文件。

  3. 前往 Debug > Attach to Process

    您也可以按 Ctrl + Alt + P

  4. Attach to Process 对话框中,选择 my_app.exe

    Visual Studio 开始监视 Flutter 应用。

首先使用 Visual Studio 开始调试

#

如果您使用 Visual Studio 调试大部分代码,请从本节开始。

启动本地 Windows 调试器
#
  1. 要打开项目解决方案文件,请前往 File > Open > Project/Solution…

    您也可以按 Ctrl + Shift + O

  2. 在您的 Flutter 应用目录中选择 build/windows/my_app.sln 文件。

  3. my_app 设置为启动项目。在 Solution Explorer 中,右键单击 my_app 并选择 Set as Startup Project

  4. 点击 Local Windows Debugger 开始调试。

    你也可以按 F5

    当 Flutter 应用启动时,控制台窗口会显示一条包含 Dart VM 服务 URI 的消息。它类似于以下响应

    flutter: The Dart VM service is listening on http://127.0.0.1:62080/KPHEj2qPD1E=/
    
  5. 复制 Dart VM 服务 URI。

在 VS Code 中附加到 Dart VM
#
  1. 要打开命令面板,请前往 View > Command Palette...

    您也可以按 Cmd + Shift + P

  2. 键入 debug

  3. 点击 Debug: Attach to Flutter on Device 命令。

  4. Paste an VM Service URI 框中,粘贴从 Visual Studio 复制的 URI 并按 Enter

资源

#

请查看以下关于调试 Flutter、iOS、Android、macOS 和 Windows 的资源

Flutter

#

Android

#

您可以在 developer.android.com 上找到以下调试资源。

iOS 和 macOS

#

您可以在 developer.apple.com 上找到以下调试资源。

Windows

#

您可以在 Microsoft Learn 上找到调试资源。