跳至主要内容

使用原生语言调试器

如果您仅使用 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 应用。您也可以使用您喜欢的 IDE,并安装和配置 Flutter 和 Dart 插件。

使用 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.flutterdart.cn/
    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 的虫子图标,用于触发 Flutter 应用的调试模式)。这将在 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应用。

在终端中构建 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. 选择要附加到的进程。对于本指南,使用模拟器 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 模拟器:<device>

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

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

  5. 在工具栏中,点击运行 'main.dart'

    您也可以按Ctrl + Shift + R

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

  6. 点击将调试器附加到 Android 进程按钮。(一个小绿色的虫子叠加了一个浅灰色的箭头

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

  8. 选择要附加到的进程。对于本指南,使用模拟器 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 的 Flutter 和 Xcode。您需要同时运行 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 进程
#

要附加到 Xcode 中的 Flutter 应用

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

  2. 选择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 的 Flutter 和 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 的虫子图标,用于触发 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 的 Flutter 和 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 的虫子图标,用于触发 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上找到调试资源。