报告错误

请按照本页上的步骤完成错误报告。用于修复错误的资源有限,因此会优先处理信息完整的错误。不完整的错误报告将被关闭。如果发生这种情况,请补充信息后重新提交错误。

为帮助确保您不会报告已修复的错误,请务必使用最新版本的工具。您还可以在 Android Studio 问题跟踪器上搜索类似问题,以查看您遇到的问题是否已报告。

如何报告错误

要报告错误,请执行以下步骤

  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(帮助 > 在 Finder 中显示日志))。此文件会显示 IDE 是否正在将错误写入日志。

使用 CPU 配置文件诊断迟钝

如果您遇到 Android Studio 运行迟钝的问题,CPU 配置文件有时有助于诊断问题。

请按照以下步骤使用 Android Studio 性能测试插件捕获 CPU 配置文件

  1. 安装插件。

    • 在 Android Studio 中,在插件市场中搜索“Performance Testing”(性能测试)。
    • 或者,您可以从插件网站下载 Android Studio 兼容版本。
  2. 创建 CPU 配置文件。

    1. 当 Android Studio 似乎运行迟钝时,选择 Start CPU Usage Profiling(开始 CPU 使用率分析)。
    2. 重复几次存在延迟问题的操作(代码补全、打字等待高亮跟上等等)。
    3. 点击 Stop CPU Usage Profiling(停止 CPU 使用率分析)。
  3. 分享配置文件。

    将出现一个气球提示,提供 CPU 快照文件名,其格式为 snapshot-NNN。在您的错误报告中共享该快照文件。

如果 IDE 内存不足

Android Studio 中的内存问题有时难以重现和报告。为了帮助解决此问题,Android Studio 包含一个内存使用情况报告,您可以将其发送给 Android Studio 团队,以帮助识别内存问题的来源。

运行内存使用情况报告

要运行内存使用情况报告,请执行以下步骤

  1. 从菜单栏中点击 Help > Analyze Memory Usage(帮助 > 分析内存使用情况)。

    Android Studio 会转储堆,并提示您重启 IDE。如果您重启 IDE,堆转储分析会立即开始。否则,堆转储分析会在您下次运行 Android Studio 时开始。无论哪种情况,IDE 都会在内存使用情况报告准备好供您审核时通知您,如图 1 所示。

    Notification indicating that a memory usage report is ready to
     review
    图 1. 内存使用情况报告通知。
  2. 点击 Review Report(审核报告)。

    在发送报告之前,您可以审核其中包含的信息

    A memory usage report.
    图 2. 内存使用情况报告分析。
  3. 完成审核后,将报告内容复制到一个文件中,并在提交错误时附加该文件。

    以这种方式提交报告信息可让 Android Studio 团队在调查您的内存问题时通过问题跟踪器与您沟通。

如果 IDE 崩溃或抛出异常

对于其他类型的崩溃,请附加通过选择 Help > Collect Logs and Diagnostic Data(帮助 > 收集日志和诊断数据)或 Help > Show Log in Files(帮助 > 在文件中显示日志)(在 macOS 上为 Help > Show Log in Finder(帮助 > 在 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(Android Gradle 插件版本)。
  • Gradle 版本

    1. 选择 File > Project Structure(文件 > 项目结构)。
    2. 点击 Project(项目)。
    3. 找到 Gradle Version(Gradle 版本)。
  • Android Studio 版本

    1. 选择 Help > About(帮助 > 关于)。
    2. 找到 Android Studio Version(Android Studio 版本)。

此外,在适用情况下,包含以下信息

  • 如果行为从早期版本到当前版本意外更改,请注明这两个版本。
  • 如果构建失败并出现错误,请从命令行运行带有 --stacktrace 选项的构建(例如 ./gradlew <task> --stacktrace),并在错误报告中提供堆栈轨迹。
  • 如果构建时间超出预期,请尝试以下方法之一
    • 运行 ./gradlew <task> --scan 并在您的错误报告中分享生成的 Gradle 构建扫描
    • 运行 ./gradlew <task> -Pandroid.enableProfileJson=true 并在 <root-project>/build/android-profile 目录下分享生成的 Chrome 轨迹文件。

Android 模拟器错误的详细信息

按照以下步骤使用模拟器的扩展控件收集信息并提交错误

  1. 在模拟器面板中,点击 More(更多)
  2. Extended controls(扩展控件)窗口中,选择 Bug Report(错误报告)。

    这将打开一个屏幕,其中包含错误报告详细信息,例如屏幕截图、AVD 配置信息和错误报告日志。您可以在此处输入重现步骤,也可以稍后在下一步生成的报告中输入。

  3. 等待错误报告收集完毕,然后点击 Send to Google(发送到 Google)。

    将弹出一个窗口,供您将错误报告保存到文件夹中。您的浏览器也将打开,以在 Google 问题跟踪器中创建报告,其中已填写必要的模拟器详细信息。

  4. 在报告中,完成任何剩余的详细信息,例如重现错误的步骤,并附加创建错误报告时保存的文件。

否则,请手动输入以下详细信息

  • 模拟器版本

    1. 在模拟器中,打开 Extended controls(扩展控件)。
    2. 点击 Help(帮助)。
    3. 点击 About(关于)标签页以找到 Emulator version(模拟器版本)。
  • Android SDK 工具版本

    1. 选择 Tools > SDK Manager(工具 > SDK 管理器)。
    2. 点击 SDK Tools(SDK 工具)。
    3. 找到 Android SDK Tools(Android SDK 工具)。
  • 主机 CPU 型号

    • 在 Linux 上:打开 /proc/cpuinfo
    • 在 Windows 上:右键点击 My Computer(我的电脑)并选择 Properties(属性)。
    • 在 macOS 上:选择 Apple 图标并点击 About This Mac(关于本机)
  • 设备名称

    1. AVD Manager 中,点击设备“Actions”(操作)列中的菜单。
    2. 选择 View Details(查看详细信息)(或打开 $avdname.avd/config.ini 文件)。
    3. 找到 hw.device.name 的条目。例如:hw.device.name=Nexus 5