跳到主内容

创建有用的错误报告

在哪里提交 Flutter 及相关网站的错误报告和功能请求。

本文档中的说明详细介绍了为崩溃和其他异常行为提供最具参考价值的错误报告所需的当前步骤。每一步都是可选的,但它们将极大地提高问题诊断和解决的速度。我们非常感谢您尽力提供尽可能多的反馈。

在 GitHub 上创建 Issue

#

提供最小化可复现代码示例

#

创建一个能够展示您所面临问题的最小化 Flutter 应用,并将其粘贴到 GitHub Issue 中。

您可以使用 flutter create bug 命令创建它,并更新 main.dart 文件。

或者,您也可以使用 DartPad,它支持创建和运行小型的 Flutter 应用。

如果问题超出了单个文件的范畴(例如涉及原生通道的问题),您可以将完整的复现代码上传到单独的仓库并提供链接。

提供 Flutter 诊断信息

#
  • 在您的项目目录中运行 flutter doctor -v,并将结果粘贴到 GitHub Issue 中。
[✓] Flutter (Channel stable, 1.22.3, on Mac OS X 10.15.7 19H2, locale en-US)
    • Flutter version 1.22.3 at /Users/me/projects/flutter
    • Framework revision 8874f21e79 (5 days ago), 2020-10-29 14:14:35 -0700
    • Engine revision a1440ca392
    • Dart version 2.10.3

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/me/Library/Android/sdk
    • Platform android-30, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B5035g
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 50.0.1
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.50.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.13.2

[✓] Connected device (1 available)
    • iPhone (mobile) • 00000000-0000000000000000 • ios • iOS 14.0

以详细模式(Verbose mode)运行命令

#

仅当您的问题与 flutter 工具本身相关时,才遵循以下步骤。

  • 所有 Flutter 命令都接受 --verbose 标志。如果将其附加到 Issue 中,此命令的输出可能有助于诊断问题。
  • 将该命令的结果附加到 GitHub Issue 中。 flutter verbose

提供最新的日志

#
  • 当前连接设备的日志可以通过 flutter logs 获取。
  • 如果崩溃是可以复现的,请清除日志(Mac 上为 ⌘ + k),复现崩溃,并将新生成的日志复制到附加在错误报告中的文件中。
  • 如果您遇到了框架抛出的异常,请包含第一个此类异常中虚线之间(包括虚线)的所有输出。 flutter logs

提供崩溃报告

#
  • 当 iOS 模拟器崩溃时,崩溃报告会生成在 ~/Library/Logs/DiagnosticReports/ 中。
  • 当 iOS 真机崩溃时,崩溃报告会生成在 ~/Library/Logs/CrashReporter/MobileDevice 中。
  • 找到与崩溃对应的报告(通常是最新的),并将其附加到 GitHub Issue 中。 crash report