如要提交完整的錯誤報告,請按照本頁的步驟操作。由於修正錯誤的資源有限,我們會優先處理附上完整資訊的錯誤,並關閉不完整的錯誤報告。如果報告遭到關閉,請重新提交錯誤,並提供額外資訊。
為避免回報已修正的錯誤,請務必使用最新版本的工具。您也可以在 Android Studio Issue Tracker 搜尋類似問題,看看是否有人已回報您遇到的問題。
如何回報錯誤
如要回報錯誤,請按照下列步驟操作:
如要在 Android Studio 中開啟錯誤報告,請依序選取「Help」>「Submit Feedback」。
這是回報錯誤最簡單的方法,因為錯誤報告會填入正確重現問題時所需的資料,包括 Android Studio 版本、Kotlin/Java 版本和系統資訊。
您也可以在這裡回報錯誤,並自行添加版本資訊。
說明重現問題的確切步驟。請盡量提供詳細資訊,包括程式碼片段、可用來重現錯誤的 GitHub 專案,以及所見狀況的螢幕截圖或記錄。
詳細說明問題。請描述您預期的結果,以及實際觀察到的狀況。
為錯誤報告選擇描述性標題。使用較明確的標題有助於依問題將資料排序。
針對某些錯誤,我們需要取得額外資訊,詳情請參閱下列各節:
Android Studio 錯誤詳細資料
如要回報 Android Studio 專屬的錯誤,請提供本節所述的額外資訊。
如果 IDE 停止運作
如果 IDE 本身運作非常緩慢或完全停止運作,請按照本頁說明產生幾個執行緒傾印,並附加到錯誤報告。這些執行緒傾印會顯示 IDE 執行的哪些作業導致速度變慢。
若 IDE 運作很緩慢,但並未停止運作,請將 idea.log
檔案附加至錯誤報告。如要附加此檔案,請依序選取「Help」>「Show Log in Files」(在 macOS 應依序選取「Help」>「Show Log in Finder」)。這個檔案會顯示 IDE 是否擲回錯誤到記錄中。
使用 CPU 設定檔診斷速度緩慢問題
如果您在 Android Studio 中遇到速度緩慢的狀況,CPU 設定檔有時可以協助診斷問題。
請按照下列步驟使用 Android Studio Performance Testing 外掛程式,擷取 CPU 設定檔:
安裝外掛程式。
- 在 Android Studio 中前往外掛程式市集,搜尋「Performance Testing」。
- 此外,也可以從外掛程式網站下載與 Android Studio 相容的版本。
建立 CPU 設定檔。
- 如果 Android Studio 的運作速度緩慢,請選擇「Start CPU Usage Profiling」。
- 重複執行幾項有延遲問題的操作,例如完成程式碼、輸入文字、等待畫面醒目顯示內容等等。
- 按一下「Stop CPU Usage Profiling」。
提供設定檔。
畫面上會出現說明框,列出 CPU 快照檔案名稱,格式為
snapshot-NNN
。請在錯誤報告中提供這個快照檔案。
如果 IDE 記憶體不足
有時,很難重現及回報 Android Studio 中的記憶體問題。為解決這個問題,Android Studio 內含記憶體用量報告。您可以將這份報告傳送給 Android Studio 團隊,協助我們找出記憶體問題的來源。
執行記憶體用量報告
如要執行記憶體用量報告,請按照下列步驟操作:
依序按一下選單列中的「Help」>「Analyze Memory Usage」。
Android Studio 會載入堆積,並提示您重新啟動 IDE。如果重新啟動 IDE,記憶體快照資料分析會立即啟動。否則,記憶體快照資料分析會在您下次執行 Android Studio 時啟動。不論是哪一種情況,IDE 都會在可查看記憶體用量報表時通知您,如圖 1 所示。
圖 1:記憶體用量報表通知。 按一下「Review Report」。
傳送報表前,您可以先查看當中所含的資訊:
圖 2:記憶體用量報表分析。 查看完畢後,將這份報表的內容複製到檔案中,並在回報錯誤時附加該檔案。
一旦以這種方式提交報表資訊,就能讓 Android Studio 團隊在調查記憶體問題時,透過 Issue Tracker 與您聯絡。
如果 IDE 異常終止或擲回例外狀況
如果發生其他類型的異常終止問題,請依序選取「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 外掛程式版本:
- 依序選取「File」>「Project Structure」。
- 按一下「Project」。
- 找出「Android Gradle Plugin Version」。
Gradle 版本:
- 依序選取「File」>「Project Structure」。
- 按一下「Project」。
- 找出「Gradle Version」。
Android Studio 版本:
- 依序選取「Help」>「About」。
- 找出「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 錯誤詳細資料
請按照下列步驟使用模擬器的擴充控制項,收集資訊並回報錯誤:
- 在模擬器面板中,按一下「More」圖示
。
在「Extended controls」視窗中,選取「Bug Report」。
這項操作會開啟一個畫面,當中列有錯誤報告的詳細資料,例如螢幕截圖、AVD 設定資訊和錯誤報告記錄。您可以在這個畫面輸入重現錯誤的步驟,也可以等到下一個步驟產生的報告中再輸入。
等待錯誤報告完成收集程序,然後按一下「Send to Google」。
系統會開啟一個視窗,讓您將錯誤報告儲存至資料夾。另外還會開啟瀏覽器,在 Google Issue Tracker 中建立報告,並填入必要的模擬器詳細資料。
在報告中填妥其餘詳細資料 (例如重現錯誤的步驟),然後附加建立錯誤報告時儲存的檔案。
或者,您也可以手動輸入下列詳細資料:
模擬器版本
- 在模擬器中開啟「Extended controls」。
- 按一下「Help」。
- 按一下「About」分頁標籤,找出「Emulator version」。
Android SDK 工具版本
- 依序選取「Tools」>「SDK Manager」。
- 按一下「SDK Tools」。
- 找出「Android SDK Tools」。
主機 CPU 型號
- Linux:開啟
/proc/cpuinfo
。 - Windows:在「我的電腦」上按一下滑鼠右鍵,然後選取「內容」。
- macOS:選取 Apple 圖示,然後按一下「關於此 Mac」。
- Linux:開啟
裝置名稱
- 在 AVD Manager 中找出所需裝置,然後點選相應「Actions」欄的向下箭頭,即可開啟選單。
- 選取「View Details」,或開啟
$avdname.avd/config.ini
檔案。 - 找出 hw.device.name 的項目,例如:
hw.device.name=Nexus 5
。