如何作为 Android 应用的 alpha 测试人员发送崩溃报告?

Posted

技术标签:

【中文标题】如何作为 Android 应用的 alpha 测试人员发送崩溃报告?【英文标题】:How to send crash reports as an alpha tester for an Android app? 【发布时间】:2016-05-06 13:12:29 【问题描述】:

我正在使用我在封闭 Alpha 版中上传到我的 Google 开发人员面板的应用。我设法在我的手机上复制了一次崩溃,但我不知道如何将这些信息发回,以便查看发生了什么。

【问题讨论】:

【参考方案1】:

抱歉,我来晚了,但我希望这可能对其他人有所帮助。根据 android 开发者官网:

捕获和阅读错误报告 错误报告包含设备日志、堆栈跟踪和其他诊断信息,可帮助您查找和修复应用程序中的错误。您可以使用设备上的 Take bug report developer 选项、Android Emulator 菜单或开发机器上的 adb bugreport 命令从您的设备捕获错误报告。

图 1. 开发人员选项

要提交错误报告,您必须在您的设备上启用开发者选项,这样您才能访问“提交错误报告”选项。

从设备捕获错误报告

图 2. 错误报告已准备就绪

要直接从您的设备获取错误报告,请执行以下操作:

确保您已启用开发人员选项。 在开发者选项中,点击获取错误报告。 选择您想要的错误报告类型,然后点击报告。 片刻之后,您会收到错误报告准备就绪的通知(参见图 2)。

要分享错误报告,请点按通知。 从 Android 模拟器捕获错误报告 在 Android Emulator 中,您可以使用扩展控件中的 File a bug 功能:

点击模拟器面板中的更多。 在扩展控件窗口中,选择左侧的错误报告。

这将打开一个屏幕,您可以在其中查看错误报告详细信息,例如屏幕截图、AVD 配置信息和错误报告日志。您还可以键入带有复制步骤的消息以与报告一起保存。

等待错误报告收集完毕,然后点击保存报告。

使用 adb 捕获错误报告 如果您只连接了一台设备,您可以使用 adb 获取错误报告,如下所示:

$ adb bugreport E:\Reports\MyBugReports

如果不指定错误报告的路径,则将其保存到本地目录。

如果您连接了多个设备,则必须使用 -s 选项指定设备。运行以下 adb 命令获取设备序列号并生成错误报告。

$ adb 设备 附加设备列表 模拟器 5554 设备 8XV7N15C31003476 设备

$ adb -s 8XV7N15C31003476 错误报告

检查错误报告 ZIP 文件 默认情况下,ZIP 文件名为 bugreport-BUILD_ID-DATE.zip,它可能包含多个文件,但最重要的文件是 bugreport-BUILD_ID-DATE.txt。这是错误报告,它包含系统服务 (dumpsys)、错误日志 (dumpstate) 和系统消息日志 (logcat) 的诊断输出。系统消息包括设备抛出错误时的堆栈跟踪,以及从所有具有 Log 类的应用程序写入的消息。

ZIP 文件包含一个 version.txt 元数据文件,其中包含 Android 版本号,启用 systrace 后,ZIP 文件还包含一个 systrace.txt 文件。 Systrace 工具通过捕获和显示应用程序进程和其他 Android 系统进程的执行时间来帮助分析应用程序的性能。

dumpstate 工具将文件从设备的文件系统复制到 FS 文件夹下的 ZIP 文件中,以便您可以引用它们。例如,设备中的 /dirA/dirB/fileC 文件会在 ZIP 文件中生成 FS/dirA/dirB/fileC 条目。

图 3. 错误报告文件结构

有关详细信息,请参阅阅读错误报告。

从您的用户那里获取报告 当您自己使用应用程序时,如上所述捕获错误报告很有帮助,但您的最终用户无法轻松与您共享这些类型的错误报告。要从真实用户那里获取包含堆栈跟踪的崩溃报告,您应该利用 Google Play 和 Firebase 的崩溃报告功能。

Google Play 管理中心 您可以从 Google Play 控制台获取报告,以查看从 Google Play 安装您的应用程序的用户的崩溃和应用程序无响应 (ANR) 错误数据。可获取前六个月的数据。

有关详细信息,请参阅 Play 管理中心帮助中的查看崩溃和应用无响应 (ANR) 错误。

Firebase 崩溃报告 Firebase Crashlytics 报告会为您的应用中的错误创建详细报告。错误根据具有类似堆栈跟踪的问题分组,并根据对用户影响的严重程度进行分类。除了自动报告之外,您还可以记录自定义事件以帮助捕获导致崩溃的步骤。

您只需将 Firebase 依赖项添加到您的 build.gradle 文件即可开始接收来自任何用户的崩溃报告。如需了解详情,请参阅 Firebase Crashlytics。

来源: https://developer.android.com/studio/debug/bug-report

【讨论】:

仅链接答案,虽然通常有用,但如果 URL 更改,很容易很快过时。我意识到这是官方文档,这种情况不太可能发生,但您应该尝试在您的答案中添加更多细节,并在此处提供该页面的一些相关内容。它会提供更好的答案,您仍然可以将链接作为来源。【参考方案2】:

ACRA

ACRA 是一个库,可让 Android 应用程序自动将其崩溃报告发布到 GoogleDoc 表单。它面向 android 应用程序开发人员,以帮助他们在应用程序崩溃或出现错误行为时从应用程序中获取数据。

Application Crash Reports for Android ACRA

【讨论】:

但是在 Google Developer Console 中有一个专门用于崩溃报告的部分。这不是一些内置的自动的东西吗?我假设如果我从秘密链接下载 alpha 版本,它会自动将崩溃报告发送回开发者帐户?

以上是关于如何作为 Android 应用的 alpha 测试人员发送崩溃报告?的主要内容,如果未能解决你的问题,请参考以下文章

Alpha 版测试人员从哪里下载 Google Play Android 应用程序?

Android Closed Alpha 版本 - 无法从 Google Play 下载版本

iOS 和 Android 应用的 Alpha 测试

如何在 google play 上将状态发布产品更改为 alpha/beta 应用程序 android

使用 alpha、beta 轨道和生产更新 google playstore 上的 android 应用程序

发布 Alpha 版新 Android 游戏时如何将应用“链接”到现有客户端 ID 和生产 SHA1