本文件中的說明詳細介紹了當前為崩潰和其他不良行為提供最具操作性 Bug 報告所需的步驟。每個步驟都是可選的,但將極大地提高診斷和解決問題的速度。我們感謝您提供儘可能多的反饋。

在 GitHub 上建立 Issue

#

提供最小可復現程式碼示例

#

建立一個能展示您遇到的問題的最小 Flutter 應用,並將其貼上到 GitHub Issue 中。

您可以使用 flutter create bug 命令來建立它,然後更新 main.dart 檔案。

或者,您也可以使用 DartPad,它能夠建立和執行小型 Flutter 應用。

如果您的問題超出了單個檔案的範圍,例如您在使用原生通道時遇到問題,您可以將復現程式碼的完整內容上傳到單獨的程式碼庫並進行連結。

提供一些 Flutter Diagnostics

#
  • 在專案目錄中執行 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

以詳細模式執行命令

#

僅當您的問題與 flutter 工具相關時,才遵循這些步驟。

  • 所有 Flutter 命令都接受 --verbose 標誌。如果附加到 Issue 中,此命令的輸出可能有助於診斷問題。
  • 將命令的輸出附加到 GitHub Issue。 flutter verbose

提供最新的日誌

#
  • 使用 flutter logs 命令訪問當前連線裝置的日誌。
  • 如果崩潰是可復現的,請清除日誌(Mac 上的 ⌘ + k),重現崩潰,然後將新生成的日誌複製到一個檔案中並附加到 Bug 報告中。
  • 如果您遇到框架丟擲的異常,請包含第一個此類異常的虛線之間的所有輸出。 flutter logs

提供崩潰報告

#
  • 當 iOS 模擬器崩潰時,會在 ~/Library/Logs/DiagnosticReports/ 生成崩潰報告。
  • 當 iOS 裝置崩潰時,會在 ~/Library/Logs/CrashReporter/MobileDevice 生成崩潰報告。
  • 找到與崩潰對應的報告(通常是最近的),並將其附加到 GitHub Issue。 crash report