回報錯誤

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

我們希望修正您的錯誤!但許多錯誤未包含必要資訊。因此,我們將著重在具備完整報告的錯誤相關資源。如要提高錯誤修正的機會,請花點時間閱讀這份文件。

如未完成下列步驟,我們會關閉您的錯誤。在這種情況下,只需重新提出其他的資訊即可。

另請注意,Issue Tracker 並非一個協助性的論壇。如果您對如何使用這些工具,或是如何讓 Android 應用程式順利運作,請造訪 stackoverflow.com 或其中一種 Android 開發人員支援資源

如何回報錯誤

  1. 請確認您使用的是最新版本的工具。因此能夠免於審查已修正的錯誤。可以的話,也請在 Android Studio 的 Issue Tracker 中搜尋類似的問題,看看該問題是否已經回報 (通常可使用錯誤訊息作為搜尋關鍵字)。

  2. 依序選取「Help」>「Submit Feedback」,在 Android Studio 中開啟錯誤報告。這是啟動錯誤最簡單的方法,因為錯誤報告會將您的 Android Studio 版本、Java 版本和系統資訊填入錯誤報告,因為我們必須正確重現問題。(否則,請在這裡回報錯誤,然後手動新增版本資訊。)

  3. 具體說明重現問題的確切步驟。如果我們能在第一次嘗試重現問題,就比較容易解決。請盡可能包含程式碼片段 (或者,請指向目前可用於重現該錯誤的 GitHub 專案)。螢幕擷圖也有助您觀察事物。

  4. 說明您原本預期會發生情況,以及您實際觀察到的內容。

  5. 根據錯誤選出描述性的匯總。您可能很驚訝的是,有多少錯誤是由「錯誤」、「問題」、「例外狀況」、「無效」等匯總所提出,這使我們難以將問題排序。

  6. 對於特定類型的錯誤,我們需要更多資訊:

Android Studio 錯誤的詳細資料

請提供下列 Android Studio 錯誤的更多相關資訊。

如果 IDE 當機

如果 IDE 本身看起來非常緩慢或完全凍結,請產生幾個執行緒傾印,並附加到錯誤報告中。可讓我們瞭解 IDE 的忙碌狀況 (或預期等待的資源)。

如果 IDE 看起來很緩慢,但不凍結,請一併附上idea.log檔案 (選取「Help」>「Show Log in Files」,或在 Mac 上則選取「Show Log in Finder」。我們可以從中找出 IDE 緩慢的原因,就是一直在將錯誤擲回到記錄檔中。

使用 CPU 分析器診斷速度緩慢情形

如果您在 Android Studio 中發生緩慢問題,CPU 分析器有時會協助診斷問題。請按照下列步驟使用 Android Studio/IntelliJ Performance Testing 外掛程式擷取 CPU 分析器:

  1. 安裝外掛程式。您可以直接從 Android Studio 搜尋外掛程式市集中的「效能測試」,也可以前往外掛程式網站下載與 Studio 相容的版本。

  2. 建立 CPU 分析器。 如果 Android Studio 看起來很緩慢,請選擇「Start CPU Usage Profiling」,然後重複幾個會造成延遲問題的動作 (程式碼完成、輸入、等待醒目顯示),然後點擊「Stop CPU Usage Profiling.」

  3. 分享設定檔。說明框會顯示 CPU 快照檔案名稱,格式為 snapshot-NNN。請在錯誤報告中分享該快照檔案。

如果 IDE 記憶體不足

有時,很難重現及回報 Android Studio 中的記憶體問題。為解決這個問題,Android Studio 內含記憶體用量報告。您可以將這份報告傳送給 Android Studio 團隊,協助我們找出記憶體問題的來源。

執行記憶體用量報告

如要執行記憶體用量報告,請按照下列步驟操作:

  1. 依序按一下選單列中的「Help」>「Analyze Memory Usage」

    Android Studio 會載入堆積,並提示您重新啟動 IDE。如果重新啟動 IDE,記憶體快照資料分析會立即啟動。否則,記憶體快照資料分析會在您下次執行 Android Studio 時啟動。不論是哪一種情況,IDE 都會在記憶體用量報告可供審查時通知您。

    指示已有記憶體用量報告可供審查的通知

  2. 按一下「Review Report」。

    傳送報告之前,您可以先審查所有資訊。

    記憶體用量報告。

  3. 完成審查後,請將報告的內容複製及貼上到文件中,並在提交錯誤時附加該檔案。

    以這種方式提交報告資訊,即可確保 Android Studio 團隊在調查記憶體問題時,使用 Issue Tracker 與您聯絡。

如果 IDE 當機或擲回例外狀況

如果是其他當機類型,請附上 idea.log 檔案。依序選取「Help」>「Show Log in Files」,在 Mac 上則選取「Show Log in Finder」

產生執行緒傾印

執行緒傾印是 JVM 中所有執行緒的列印工作,而針對每個執行緒,就是所有堆疊框架的列印。這有助您輕鬆查看 IDE 的忙碌情形,特別是假如您每隔兩秒會產生幾個執行緒傾印。

當您回報 IDE 因處理繁雜的 CPU 或 IDE 凍結時較常發生的錯誤時,執行緒傾印可以得知哪個程式碼正在執行過多工作,或哪些執行緒正在爭用資源並導致死結。

JDK 隨附一個名為「jstack」的工具,可用來產生執行緒傾印。首先,您必須先找到 Android Studio 程序的流程 ID。 您可以使用「jps」指令。(jstack 和 jp 都屬於 JDK 的 bin 目錄。如果您安裝了多個 JDK,請使用與執行 Android Studio 相同的版本,您可以從 Android Studio「About」方塊中查看版本。

使用 Linux、Mac:

jps -mv | grep studio

使用 Windows:

jps -mv | findstr studio

舉例來說,印出的長直線如下:

$ jps -mv | grep studio
37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...

左邊的第一個數字是 37605,也就是程序 ID。

接著,您可以產生執行緒傾印並儲存到檔案 dump.txt 中,如下所示:

jstack -l pid >> dump.txt

如果這個方法無效,還有一些其他針對特定平台的方法可以產生執行緒傾印。如需詳細的操作說明,請參閱「IntelliJ 支援」。

建構工具和 Gradle 錯誤的詳細資料

請附上能說明問題的實際或範例專案。這是確保擷取所有必要資訊的最佳方式。請務必移除所有機密資訊,再分享相關資訊。

如果無法分享專案,請指明您目前使用的工具版本 (嘗試先使用最新的穩定版本或預覽版本):

  • Android Gradle 外掛程式版本:選取「File」>「Project Structure」,按一下「Project」,然後找到「Android Gradle Plugin Version」
  • Gradle 版本:在上述頁面中找到「Gradle Version」
  • Android Studio 版本:依序選取「Help」>「About」,然後找出 Android Studio 版本。

此外,請提供下列適用資訊:

  • 如果從舊版至目前版本行為產生無預期的變化,請指明兩個版本為何。
  • 如果建構失敗而發生錯誤,請使用 --stacktrace 選項在指令列中執行建構作業 (例如 ./gradlew <task> --stacktrace) 並向我們提供堆疊追蹤。
  • 如果建構時間超出預期,請嘗試下列其中一種做法:
    • 執行 ./gradlew <task> --scan 並分享已產生的 Gradle 建構作業掃描
    • 執行 ./gradlew <task> -Pandroid.enableProfileJson=true 並分享 <root-project>/build/android-profile 目錄下產生的 Chrome 追蹤記錄檔案。

Android Emulator 錯誤詳細資料

收集模擬器詳細資料最簡單的方法,就是在延伸控制項中使用「File a bug」功能:

  1. 按一下模擬器面板中的「More」
  2. 在「Extended controls」視窗中,選取左側的「Bug Report」

    這會開啟一個畫面,供您查看錯誤報告的詳細資料,例如螢幕擷圖、AVD 設定資訊和錯誤報告記錄。您可以在這裡輸入重現步驟,或等到下一個步驟產生的報告再輸入。

  3. 等待錯誤報告收集完成後,接著按一下「Send to Google」。系統會開啟另一個視窗,方便您將錯誤報告儲存至資料夾,接著開啟瀏覽器,並在 Google Issue Tracker 中建立報告,其中填妥了必要的模擬器詳細資料。

  4. 在報告中,完成其他詳細資料,例如重現錯誤的步驟,並附加建立錯誤報告時儲存的檔案。

否則,您必須手動輸入下列詳細資料:

  • 模擬器版本。在模擬器中開啟「Extended controls」,按一下「Help」,然後按一下「About」分頁,找到「Emulator version」
  • Android SDK 工具版本。選取「Tools」>「SDK Manager」,按一下「SDK Tools」,然後找到「Android SDK Tools」
  • 代管 CPU 模型。
    • Linux:開啟 /proc/cpuinfo
    • Windows:在「My Computer」上按一下滑鼠右鍵,然後選取「Properties」
    • Mac:按一下 Apple 圖示,然後按一下「About This Mac」
  • 裝置名稱。在「AVD Manager」中,按一下以開啟裝置「Actions」欄中的下拉式選單,然後選取「View Details」(或開啟 $avdname.avd/config.ini 檔案)。找出 hw.device.name 的項目。例如:hw.device.name=Nexus 5