Skip to content

Most visited

Recently visited

navigation

报告错误

我们希望修复您遇到的错误!但是许多错误报告未提供必要的信息。 因此,我们将有限的资源集中用于修复包含完整报告的错误。 为提高您报告的错误得以修复的机率,请花时间认真阅读此文档。

如果您未遵循相关步骤,我们将关闭您报告的错误。 如果出现此情况,只需提供补充信息并重新提交错误报告即可。

另请注意,Issue Tracker 不是一个支持论坛。 如果您有关于如何使用工具或如何让 Android 应用上线的问题,请访问 stackoverflow.comAndroid 开发者支持资源之一。

如何报告错误

  1. 确保您使用的是最新版本工具。 我们耗费了大量时间来检查报告的错误是否已修复。 如果我们关闭了您的问题,并指明需要阅读此文档,请重新开立一个问题,前提是您可以使用最新版本工具重现此问题。

  2. 描述重现问题的准确步骤。 请具体说明。 如果我们第一次尝试就可以重现问题,修复的机率会大大增加。 如果可能的话,请列出代码片段(或者,最好注明可用于重现此错误的 GitHub 项目)。 屏幕截图也有助于说明您观察到的问题。

  3. 描述您期望发生的结果以及实际观察到的结果。

  4. 列出版本信息。 对于 Android Studio,您可以在 About 对话框(点击 Help > About)(或者,在 Mac 上,点击 Android Studio > About Android Studio)中查找此信息。 您无需突出显示要复制的文本,只需按 Ctrl + C(在 Mac 上,则按 Command + C),然后将它粘贴到错误报告中即可。

  5. 如果适用,列出您正在使用的 Java 版本(对于 Android Studio,此信息包含在 About 框中)。

  6. 列出您所使用的操作系统。

  7. 选择一个概括性的短语来描述错误。 令人惊讶的是,提交的错误报告当中有很多都是使用“错误”、“问题”、“异常”、“不工作”这样的概括性短语。

  8. 对于某些类型的错误,我们还需要其他信息:

再强调一次,清楚说明如何重现错误至关重要。 如果可能的话,分享文件或项目,以帮助重现问题(当然,您不必在错误报告中附加任何专有源代码)。屏幕截图也有助于说明您正讨论的问题。

收集此信息后,在此处提交您的错误

Android Studio 错误详情

列出以下特定于 Android Studio 错误的其他信息。

如果 IDE 挂起

如果 IDE 本身运行非常缓慢或完全挂起,请生成几个线程转储并将它们附加到错误报告中。 这些转储告诉我们 IDE 正在忙于执行什么操作(或在等待什么争用资源)。

如果 IDE 运行缓慢但未挂起,则同时附加 idea.log 文件(选择 Help > Show Log in Finder)。 它会告诉我们是否因 IDE 持续将错误记录到日志中而导致它运行缓慢。

如果 IDE 耗尽内存

如果 IDE 耗尽内存,请执行以下命令,生成堆的直方图:

jmap -histo:live <pid>

如果 IDE 崩溃或引发异常

对于其他类型崩溃事件,请附加 idea.log 文件。 选择 Help > Show Log in Finder

生成线程转储

线程转储是 JVM 中运行的所有线程的打印输出,而对于每个线程,都会为其所有堆栈帧生成一份打印输出。 这样很容易知道 IDE 在忙于执行什么操作。 如果每隔几秒钟就生成几个线程转储,就更清楚了。

当您报告 IDE 异常忙碌导致 CPU 超负荷运行或者 IDE 似乎挂起的错误时,线程转储可以准确地找出哪个代码正在执行大量作业,或哪些线程正在争用资源,导致死锁。

JDK 附带一个名为 “jstack” 的工具,此工具可用于生成线程转储。 首先,您需要查找 Android Studio 进程的进程 ID。 为此,您可以使用“jps”命令。 (jstack 和 jps 均位于 JDK 的 bin 目录中。 如果您安装了多个 JDK,则应使用与 Android Studio 配合运行的 JDK 相同的版本,您可以在 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 支持

Instant Run 错误详情

要报告 Instant Run 问题,请执行以下步骤:

  1. 启用 Android Studio 记录有关 Instant Run 会话的附加信息。
  2. 如果您要在完成上一步之前提交有关您遇到的问题的反馈,请尝试重现问题。
  3. 遇到 Instant Run 问题后立即提交报告。

我们收集的信息

启用 IDE 记录有关 Instant Run 会话的以下信息,有助于 Android Studio 团队更好地了解您遇到的问题,此类信息将仅用于此目的

启用记录附加信息

要授予 Android Studio 采集和发送此信息的权限,请执行以下步骤:

  1. 打开 Settings 或者 Preferences 对话框。
  2. 导航至 Build, Execution, Deployment >Instant Run
  3. 选中 Log extra info 复选框。 您可以随时停用此选项。
  4. 点击 OK

报告问题

启用记录附加信息后,重现您之前遇到的任何 Instant Run 问题。 重现问题后,按照如下步骤立即提交报告:

  1. 从菜单栏中选择 Help > Report Instant Run Issue。 此时将出现一个如图 4 所示的对话框。

    图 4. 您可以在文本字段中提供额外的详情,检查 Android Studio 将连同您的报告一起发送的日志。

  2. 在此文本字段中提供一些其他信息,描述您遇到的问题,例如重现问题的步骤或实际行为与您预期行为之间的差异。
  3. 操作完成后点击 OK

构建工具和 Gradle 错误详情

列出项目构建问题或 Gradle 同步问题的以下特定信息:

Android Emulator 错误详情

列出 Emulator 错误的以下特定信息:

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)