2

有时,我们的 Android 应用程序的用户会在 Google 试图追踪的 Google 基础设施中遇到一个晦涩难懂的问题。自然地,从事它的工程师希望在发生这种情况时看到一些错误报告输出。这让我们回到了一个老问题,即如何让非技术人员最终用户生成并发送错误报告。安装 SDK,配置 Windows 系统以便可以执行 adb bugreport 听起来并不可行。

我一直在寻找一个可以做到这一点的简单应用程序,但没有成功。所以我尝试将该功能添加到我自己的应用程序中。这就是我需要帮助的地方。如果我使用 shell 命令访问我的设备,我可以使用简单的 sh -c 'bugreport | 生成报告。gzip > bugreport.gz' 但是如果我尝试从我的应用程序中执行此操作,bugreport 只会显示一条错误消息 Failed to connect to dumpstate service 我猜我错过了一些奇怪的权限,但不知道它可能是什么。

有人有什么想法我可以尝试吗?

4

3 回答 3

3

如果我没记错的话,你想在应用程序崩溃时查看错误日志。为此,您可以将ACRA库与代码集成。这会生成运行时未捕获的错误,并且可以发送到电子邮件或特定服务器。

于 2013-10-07T17:31:47.937 回答
3

“shell”用户有权执行应用程序不执行的操作,因此您不能简单地从应用程序运行错误报告。

在 Android 4.2 及更高版本上,您可以从“开发人员选项”菜单中获取错误报告。该菜单可以通过进入设置,选择关于手机,然后点击内部版本号七次来启用。(这记录在这里,在设备上的开发人员选项下。)

生成的错误报告可以通过电子邮件发送(注意出现通知)。在某些情况下,它不如“adb bugreport”有用,因为您必须切换到设置来生成报告,但它会包含完整的日志和其他好东西。有一个神奇的键序列会启动错误报告,但我不知道是否有办法在非开发设备上启用它。

于 2013-10-07T20:39:00.950 回答
0

Android 现在可以随意捕获错误报告。引用项目成员的 android 问题评论

首先启用错误报告快捷方式:

导航到开发人员设置,确保启用“USB 调试”,然后启用“错误报告快捷方式”。

当您遇到错误时:

要获取错误报告,请按住电源按钮并选择“获取错误报告”选项。

这将生成一个 zip 存档并提供共享它,例如通过电子邮件、上传到 Google 驱动器或其他方式。但请注意,错误报告 zip 文件包含大量可能被视为私人信息的信息,因此用户应该只与他们信任的人共享它以适当地使用它。当然还要注意,应用程序的开发人员可能已经可以访问部分或全部信息。ChkBugReport工具可以深入了解报告的内容。但我还没有看到好的安全/隐私文章(或者关于这一切的任何官方文档),所以我建议适当谨慎。

于 2016-08-15T16:33:24.547 回答