我有一个我在市场上发布的Android应用程序。一些客户报告了某些设备的兼容性问题。我相信我需要查看这些设备的LogCat来发现问题。问题是我没有那些便于测试的设备。
是否有某种方法可以让应用程序在其活动期间记录logcat输出?我知道我可以添加手动记录并将其写入文件,但我不想仅从我的应用程序记录输出,而是从LogCat记录所有内容。然后,我可以让客户将日志文件发送给我进行分析。
答案 0 :(得分:2)
您可以要求用户安装logcat应用,例如aLogCat。这似乎是最快的解决方案
答案 1 :(得分:2)
如果他们安装了SDK,只需连接手机即可:
adb logcat -d > logcat.txt
我认为Android OS上的“开箱即用”解决方案并不是您想要的。这将是一个安全风险恕我直言。可能有一个应用程序。
您可以在此处找到有关此问题的主题:http://forum.xda-developers.com/showthread.php?t=543128
处理此问题的方法是当应用程序崩溃或执行某些操作失败时(try..catch或if ...),然后您可以将堆栈保存到文件以供用户发送给您,或自动发送到你的服务器(当然你应该警告用户)
修改强>
正如在另一篇文章中所说的“有一个应用程序”:https://market.android.com/details?id=org.jtb.alogcat
这也很有用:https://market.android.com/details?id=net.robotmedia.bugreporter 一个真正用于Bug报告的应用程序。
编辑2:
我错了,您可以从应用程序中捕获logcat:
Process logcat = Runtime.getRuntime().exec("logcat"); // start process
BufferedReader reader = new BufferedReader( new InputStreamReader(logcat.getInputStream())); // grab output stream
这应该在一个单独的线程中完成。