使用原生语言调试器

如果您仅使用 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. 单击 bug 图标 (VS Code 的 bug 图标,用于触发 Flutter 应用的调试模式)。这将在 VS Code 中打开以下窗格

    • 调试
    • 调试控制台
    • 小部件检查器

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

  4. 测试调试器。

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

       _counter++;
    

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

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

    d. 此时,VS Code 显示

    • 编辑器组
      • main.dart 中突出显示的断点
      • 小部件检查器小部件树 中 Flutter 应用的小部件层次结构
    • 侧边栏
      • 调用堆栈 部分中应用的状态
      • 变量 部分中 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 文件> 您正在编辑的文件
粉红色 小部件检查器 正在运行的 Flutter 应用中的小组件层次结构
蓝色 布局资源管理器 Flutter 在小组件检查器中放置您选择的小组件的方式的可视化效果
  小组件详细信息树 小组件检查器中选择的小组件的属性列表
橙色 问题 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 打开小组件检查器  

更新测试 Flutter 应用

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

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

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

    展开以查看此示例的 Flutter 代码
    lib/main.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 应用。

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

要生成所需的 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 的错误图标,用于触发 Flutter 应用的调试模式)。这将打开调试窗格并启动应用。等待应用在设备上启动,并等待调试窗格指示已连接。调试器在首次启动时需要较长时间。后续启动会更快。

    此 Flutter 应用包含两个按钮

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

在 Android Studio 中附加到 Flutter 进程

  1. 点击将调试器附加到 Android 进程按钮。(一个微小的绿色错误,上面叠加了一个浅灰色箭头

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

  3. 选择您要附加到的进程。对于本指南,使用Emulator Pixel_5_API_33选择 com.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 进程按钮。(一个微小的绿色错误,上面叠加了一个浅灰色箭头

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

  8. 选择您要附加到的进程。对于本指南,使用Emulator Pixel_5_API_33选择 com.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 调试 Flutter。你需要同时运行 VS Code 和 Xcode。

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

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

要生成所需的 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 的错误图标,用于触发 Flutter 应用的调试模式)。这将打开调试窗格并启动应用。等待应用在设备上启动,并等待调试窗格指示已连接。调试器在首次启动时需要较长时间。后续启动会更快。

    此 Flutter 应用包含两个按钮

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

    Runner 应位于附加到进程菜单顶部的可能目标标题下。

首先使用 Xcode 开始调试

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

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

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

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

  3. 在 Xcode 中以普通应用运行此 Runner。

    运行完成后,Xcode 底部的调试区域会显示一条包含 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. 要打开命令面板,请转到视图 > 命令面板…

    你也可以按 Cmd + Shift + P

  2. 键入 debug

  3. 单击调试:附加到设备上的 Flutter命令。

  4. 粘贴 VM 服务 URI框中,粘贴你从 Xcode 复制的 URI,然后按 Enter

使用 Xcode 调试 Dart 和 macOS 代码

要调试 macOS 代码,你需要一个包含 macOS 代码的 Flutter 应用。在本部分中,你将学习如何将两个调试器连接到你的应用:通过 VS Code 和 Xcode 调试 Flutter。你需要同时运行 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 的错误图标,用于触发 Flutter 应用的调试模式)。这将打开调试窗格并启动应用。等待应用在设备上启动,并等待调试窗格指示已连接。调试器在首次启动时需要较长时间。后续启动会更快。

    此 Flutter 应用包含两个按钮

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

    Runner 应位于附加到进程菜单顶部的可能目标标题下。

首先使用 Xcode 开始调试

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

  2. 在 Xcode 中以普通应用运行此 Runner。

    运行完成后,Xcode 底部的调试区域会显示一条包含 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. 要打开命令面板,请转到 视图 > 命令面板…

    你也可以按 Cmd + Shift + P

  2. 键入 debug

  3. 单击调试:附加到设备上的 Flutter命令。

  4. 粘贴 VM 服务 URI框中,粘贴你从 Xcode 复制的 URI,然后按 Enter

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

要调试 C++ 代码,你需要一个包含 C++ 代码的 Flutter 应用。在本部分中,你将学习如何将两个调试器连接到你的应用:通过 VS Code 和 Visual Studio 调试 Flutter。你需要同时运行 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 的错误图标,用于触发 Flutter 应用的调试模式)。这将打开调试窗格并启动应用。等待应用在设备上启动,并等待调试窗格指示已连接。调试器在首次启动时需要较长时间。后续启动会更快。

    此 Flutter 应用包含两个按钮

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

    你还可以按 Ctrl + Shift + O

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

  3. 转到 调试 > 附加到进程

    你还可以按 Ctrl + Alt + P

  4. 附加到进程 对话框中,选择 my_app.exe

    Visual Studio 开始监视 Flutter 应用。

首先使用 Visual Studio 开始调试

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

启动本地 Windows 调试器
  1. 要打开项目解决方案文件,请转到 文件 > 打开 > 项目/解决方案…

    你还可以按 Ctrl + Shift + O

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

  3. my_app 设置为启动项目。在 **解决方案资源管理器** 中,右键单击 my_app,然后选择 **设为启动项目**。

  4. 单击 **本地 Windows 调试器** 以开始调试。

    您还可以按 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. 要打开命令面板,请转到视图 > 命令面板…

    你也可以按 Cmd + Shift + P

  2. 键入 debug

  3. 单击调试:附加到设备上的 Flutter命令。

  4. 在 **粘贴 VM 服务 URI** 框中,粘贴您从 Visual Studio 复制的 URI,然后按 Enter

资源

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

Flutter

Android

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

iOS 和 macOS

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

Windows

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