分析堆疊追蹤

應用程式偵錯通常需要使用堆疊追蹤。每當應用程式因錯誤或例外狀況而當機時,系統就會產生堆疊追蹤。您也可以使用 Thread.dumpStack() 等方法,在應用程式程式碼中的任何點列印堆疊追蹤。

如果您的應用程式在連線裝置上以偵錯模式執行,Android Studio 會在 logcat 檢視畫面中列印並醒目顯示堆疊追蹤記錄,如圖 1 所示。

圖 1. logcat 中的堆疊追蹤。

堆疊追蹤會顯示導致例外狀況被擲回的方法呼叫清單,以及發生呼叫的檔案名稱和行編號。按一下醒目顯示的檔案名稱即可開啟檔案,並檢查方法叫用的來源。按一下「Up the stack trace」和「Down the stack trace」,可在 logcat 視窗中顯示的堆疊追蹤記錄行之間快速移動。

開啟外部來源的堆疊追蹤記錄

有時您想分析在錯誤報告中與您分享的堆疊追蹤記錄,而非您在偵錯時找到的堆疊追蹤記錄。舉例來說,您可能會透過 Google Play 管理中心或其他工具 (例如 Firebase 當機回報) 收集在使用者裝置上產生的堆疊追蹤記錄。

如要從錯誤報告中獲得相同醒目顯示且可點選的外部堆疊追蹤檢視畫面,請按照下列步驟操作:

  1. 在 Android Studio 中開啟專案。

    注意:您查看的原始碼必須與產生堆疊追蹤的應用程式來自相同版本。如果程式碼不同,檔案名稱和行編號就會不一致,或是堆疊追蹤和專案中的呼叫順序不一致。

  2. 按一下「Analyze」選單中的「Analyze Stack Trace」。

    「Analyze Stack Trace」視窗

  3. 將堆疊追蹤文字貼到「Analyze Stack Trace」視窗中,然後按一下「OK」
  4. Android Studio 會開啟新的<Stacktrace>分頁,其中含有您在「Run」視窗下貼的堆疊追蹤文字。

    「Stacktrace」視窗

監控剪貼簿中的新堆疊追蹤記錄

如果您經常使用外部堆疊追蹤,您可以允許 Android Studio 持續監控系統剪貼簿中是否有新的堆疊追蹤記錄,藉此提升效率:

  1. 開啟「Analyze Stacktrace」工具。
  2. 勾選「Automatically detect and analyze thread dumps copied to the clipboard outside of IntelliJ IDEA」核取方塊。
  3. 將另一個應用程式 (例如來自網路瀏覽器) 中的堆疊追蹤記錄複製到系統剪貼簿。
  4. 返回「Android Studio」視窗時,堆疊追蹤記錄會在「Run」視窗下自動開啟,不需要您貼到「Analyze Stacktrace」視窗中。