回報錯誤

如要提交完整的錯誤報告,請按照本頁的步驟操作。由於修正錯誤的資源有限,我們會優先處理附上完整資訊的錯誤,並關閉不完整的錯誤報告。如果報告遭到關閉,請重新提交錯誤,並提供額外資訊。

為避免回報已修正的錯誤,請務必使用最新版本的工具。您也可以在 Android Studio Issue Tracker 搜尋類似問題,看看是否有人已回報您遇到的問題。

如何回報錯誤

如要回報錯誤,請按照下列步驟操作:

  1. 如要在 Android Studio 中開啟錯誤報告,請依序選取「Help」>「Submit Feedback」

    這是回報錯誤最簡單的方法,因為錯誤報告會填入正確重現問題時所需的資料,包括 Android Studio 版本、Kotlin/Java 版本和系統資訊。

    您也可以在這裡回報錯誤,並自行添加版本資訊。

  2. 附加診斷報告,方便我們進行偵錯。如要產生診斷報告的 ZIP 檔案,請依序點選「Help」>「Collect Logs and Diagnostic Data」

  3. 說明重現問題的確切步驟。請盡量提供詳細資訊,包括程式碼片段、可用來重現錯誤的 GitHub 專案,以及所見狀況的螢幕截圖或記錄。

  4. 詳細說明問題。請描述您預期的結果,以及實際觀察到的狀況。

  5. 為錯誤報告選擇描述性標題。使用較明確的標題有助於依問題將資料排序。

針對某些錯誤,我們需要取得額外資訊,詳情請參閱下列各節:

Android Studio 錯誤詳細資料

如要回報 Android Studio 專屬的錯誤,請提供本節所述的額外資訊。

如果 IDE 停止運作

如果 IDE 本身運作非常緩慢或完全停止運作,請按照本頁說明產生幾個執行緒傾印,並附加到錯誤報告。這些執行緒傾印會顯示 IDE 執行的哪些作業導致速度變慢。

如果 IDE 運作速度緩慢,但未停止運作,請將 idea.log 檔案附加至錯誤報告。如要附加檔案,請依序選取「Help」>「Collect Logs and Diagnostic Data」或「Help」>「Show Log in Files」(在 macOS 應依序選取「Help」>「Show Log in Finder」)。這個檔案會顯示 IDE 是否將錯誤擲回到記錄中。

使用 CPU 設定檔診斷速度緩慢問題

如果您在 Android Studio 中遇到速度緩慢的狀況,CPU 設定檔有時可以協助診斷問題。

請按照下列步驟使用 Android Studio Performance Testing 外掛程式,擷取 CPU 設定檔:

  1. 安裝外掛程式。

    • 在 Android Studio 中前往外掛程式市集,搜尋「Performance Testing」。
    • 此外,也可以從外掛程式網站下載與 Android Studio 相容的版本。
  2. 建立 CPU 設定檔。

    1. 如果 Android Studio 的運作速度緩慢,請選擇「Start CPU Usage Profiling」
    2. 重複執行幾項有延遲問題的操作,例如完成程式碼、輸入文字、等待畫面醒目顯示內容等等。
    3. 按一下「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 都會在可查看記憶體用量報表時通知您,如圖 1 所示。

    通知訊息指出已可查看記憶體用量報表
    圖 1:記憶體用量報表通知。
  2. 按一下「Review Report」

    傳送報表前,您可以先查看當中所含的資訊:

    記憶體用量報表。
    圖 2:記憶體用量報表分析。
  3. 查看完畢後,將這份報表的內容複製到檔案中,並在回報錯誤時附加該檔案。

    一旦以這種方式提交報表資訊,就能讓 Android Studio 團隊在調查記憶體問題時,透過 Issue Tracker 與您聯絡。

如果 IDE 異常終止或擲回例外狀況

如果發生其他類型的異常終止問題,請依序選取「Help」>「Collect Logs and Diagnostic Data」或「Help」>「Show Log in Files」(在 macOS 應依序選取「Help」>「Show Log in Finder」),附加找到的 idea.log 檔案。

產生執行緒轉儲

執行緒傾印是 JVM 中所有執行緒的印出內容,而每個執行緒的傾印都包含所有堆疊框的印出內容。這有助於查看 IDE 忙於處理的作業,尤其在您每隔幾秒就產生幾個執行緒傾印時,更是如此。

如果 IDE 極度忙碌而導致 CPU 超載,或 IDE 停止運作,當您回報這些錯誤時,執行緒傾印可以精確指出哪個程式碼正在執行大量作業,或者哪些執行緒正在爭用資源並造成死結。

JDK 隨附名為 jstack 的工具,可用來產生執行緒傾印。首先,請找出 Android Studio 程序的程序 ID (PID),做法是使用以下 jps 指令:

Linux 或 macOS:

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 錯誤的詳細資料

如要回報建構工具或 Gradle 的錯誤,請附加可展示問題的實際或範例專案,確保您擷取所需的一切資訊。提供專案前,應移除所有機密資訊。

如果無法提供專案,請指出您使用的工具版本。建議您先嘗試使用最新的穩定版本或預先發布版,再回報錯誤。如要找出工具版本,請執行下列操作:

  • Android Gradle 外掛程式版本:

    1. 依序選取「File」>「Project Structure」
    2. 按一下「Project」
    3. 找出「Android Gradle Plugin Version」
  • Gradle 版本:

    1. 依序選取「File」>「Project Structure」
    2. 按一下「Project」
    3. 找出「Gradle Version」
  • Android Studio 版本:

    1. 依序選取「Help」>「About」
    2. 找出「Android Studio Version」

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

  • 如果從舊版本改用目前版本後,發現運作方式意外產生變化,請指明這兩個版本。
  • 如果建構作業因發生錯誤而失敗,請透過指令列使用 --stacktrace 選項 (例如 ./gradlew <task> --stacktrace) 執行建構作業,並在錯誤報告中提供堆疊追蹤。
  • 如果建構時間超出預期,請嘗試下列其中一種做法:
    • 執行 ./gradlew <task> --scan,並在錯誤報告中提供此指令產生的 Gradle 建構掃描記錄
    • 執行 ./gradlew <task> -Pandroid.enableProfileJson=true,並提供 <root-project>/build/android-profile 目錄下產生的 Chrome-trace 檔案。

Android Emulator 錯誤詳細資料

請按照下列步驟使用模擬器的擴充控制項,收集資訊並回報錯誤:

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

    這項操作會開啟一個畫面,當中列有錯誤報告的詳細資料,例如螢幕截圖、AVD 設定資訊和錯誤報告記錄。您可以在這個畫面輸入重現錯誤的步驟,也可以等到下一個步驟產生的報告中再輸入。

  3. 等待錯誤報告完成收集程序,然後按一下「Send to Google」

    系統會開啟一個視窗,讓您將錯誤報告儲存至資料夾。另外還會開啟瀏覽器,在 Google Issue Tracker 中建立報告,並填入必要的模擬器詳細資料。

  4. 在報告中填妥其餘詳細資料 (例如重現錯誤的步驟),然後附加建立錯誤報告時儲存的檔案。

或者,您也可以手動輸入下列詳細資料:

  • 模擬器版本

    1. 在模擬器中開啟「Extended controls」
    2. 按一下「Help」
    3. 按一下「About」分頁標籤,找出「Emulator version」
  • Android SDK 工具版本

    1. 依序選取「Tools」>「SDK Manager」
    2. 按一下「SDK Tools」
    3. 找出「Android SDK Tools」
  • 主機 CPU 型號

    • Linux:開啟 /proc/cpuinfo
    • Windows:在「我的電腦」上按一下滑鼠右鍵,然後選取「內容」
    • macOS:選取 Apple 圖示,然後按一下「關於此 Mac」
  • 裝置名稱

    1. AVD Manager 中找出所需裝置,然後點選相應「Actions」欄的向下箭頭,即可開啟選單。
    2. 選取「View Details」,或開啟 $avdname.avd/config.ini 檔案。
    3. 找出 hw.device.name 的項目,例如:hw.device.name=Nexus 5