2013-10-07 43 views
1

偶尔我们的Android应用程序的用户遇到谷歌基础架构中一个模糊的问题,谷歌正试图追查。当然,工作的工程师想要在发生这种情况时看到一些错误报告输出。这让我们陷入了如何让一个非技术终端用户生成并发送错误报告的老问题。安装SDK,配置Windows系统以便可以执行 adb bugreport 听起来不太可行。Android应用程序生成bugreport

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

任何人有任何想法我可以尝试吗?

回答

3

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

3

“shell”用户有权执行应用程序不能执行的操作,因此您无法仅通过应用程序运行bug报告。

在Android 4.2及更高版本中,您可以从开发人员选项菜单获取错误报告。可以进入设置,选择关于手机,然后点击构建号码七次启用菜单。 (在设备开发人员选项下,此文档记录为here)。

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

0

Android现在有能力随时捕获错误报告。要从android issue comment by a project member引用:

首先使错误报告的快捷键:

导航到开发商的设置,确保“USB调试”被启用,然后启用“Bug报告的快捷方式”。

当你穿过一个bug运行:

采取错误报告,按住电源按钮,然后选择“以错误报告”选项。

这将生成zip压缩文件并提供分享,例如,通过电子邮件,上传到谷歌驱动器或其他。但请注意,bugreport压缩文件包含一些可能被认为是私人的信息,因此用户应该只与他们信任的人员共享,以便适当地使用它。当然还要注意,应用程序的开发人员可能已经可以访问部分或全部信息。 ChkBugReport工具可以深入了解所报告的内容。但我还没有看到一个很好的安全/隐私写作(或所有这些真正的官方文档),所以我建议适当的谨慎。