我们的Android应用程序的用户偶尔会遇到Google试图追踪的Google基础架构中的一个模糊问题。当然,工作的工程师希望在发生这种情况时看到一些错误报告输出。这让我们了解了如何让非技术人员最终用户生成并发送错误报告的老问题。安装SDK,配置Windows系统以便可以执行此操作 adb bugreport 听起来不太可行。
我一直在寻找能够做到这一点的简单应用程序,但没有成功。所以我尝试将该功能添加到我自己的应用程序中。这是我需要帮助的地方。如果我使用shell命令访问我的设备,我可以生成简单的报告 sh -c'bugreport | gzip> bugreport.gz” 但是,如果我尝试从我的应用程序执行此操作,bugreport只会显示一条错误消息 无法连接到dumpstate服务 我猜我错过了一些奇怪的许可,但不知道它可能是什么。
任何人都有什么想法我可以尝试?
答案 0 :(得分:3)
如果我没有错,您希望在应用程序崩溃时看到错误日志。为此,您可以将ACRA库与代码集成。这可以生成运行时未捕获的错误,并且可以发送到电子邮件或特定服务器。
答案 1 :(得分:3)
“shell”用户有权执行应用程序不能执行的操作,因此您无法简单地从应用程序运行bugreport。
在Android 4.2及更高版本中,您可以从“开发者选项”菜单中获取错误报告。可以通过进入“设置”,选择“关于电话”,然后点击“内部版本号”七次来启用该菜单。 (这是在设备上的开发者选项下记录的here。)
生成的错误报告可以通过电子邮件发送(注意要显示的通知)。在某些情况下,它不如“adb bugreport”有用,因为你必须切换到Settings来生成报告,但它将拥有完整的日志和其他好东西。有一个魔术键序列可以启动bug报告,但我不知道是否有办法在非开发设备上启用它。
答案 2 :(得分:0)
Android现在可以随意捕获错误报告。引用android issue comment by a project member:
首先启用错误报告快捷方式:
导航到开发人员设置,确保启用“USB调试”,然后启用“错误报告快捷方式”。
当您遇到错误时:
要获取错误报告,请按住电源按钮并选择“获取错误报告”选项。
这将生成一个zip存档并提供共享它,例如通过电子邮件,上传到谷歌驱动器或其他。但请注意,bugreport zip文件包含一堆可能被视为私有的信息,因此用户只应与他们信任的人员共享它以适当地使用它。当然还要注意,应用程序的开发人员可能已经可以访问部分或全部信息。 ChkBugReport工具可以深入了解所报告的内容。但我还没有看到一篇好的安全/隐私文章(或者真的有关于这一切的官方文档),所以我建议给予适当的谨慎。