跳至主要內容

建立有用的錯誤報告

本文檔中的指示詳細說明了提供最可行的當機和其他不良行為錯誤報告所需的當前步驟。每個步驟都是可選的,但將大大提高診斷和解決問題的速度。我們感謝您盡可能向我們發送的回饋意見。

在 GitHub 上建立問題

#

提供最小可重現的程式碼範例

#

建立一個最小化的 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

在詳細模式下執行命令

#

只有當您的問題與 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