我正在调试一个未针对Android显式编码的现有库。
它有效,但包含许多ex.printStackTrace()
个调用。
在Android中,默认情况下不会将这些内容写入logcat。
我的问题是:没有修改代码的可能性,是否有可能以某种方式看到printStackTrace()
调用生成的堆栈跟踪?
答案 0 :(得分:1)
在Android中,默认情况下不会将这些内容写入logcat。
当然可以。它们以日志级别WARN写出,标记通常为System.err
答案 1 :(得分:0)
如果您在Eclipse中工作,请打印堆栈跟踪并检查Logcat(使用DDMS)工具中的消息。
如果没有,请在命令行中使用adb logcat
。
无论哪种方式,结果都不会显示任何标签,因此您必须猜测它们来自哪个应用程序。如果您想知道发送它们的应用程序,最好使用Log函数。
答案 2 :(得分:0)
我认为你可以使用getStackTrace。
无论如何,不要这样做,因为打印堆栈跟踪不会返回哪个应用程序导致错误。使用java.util中的Log类。
答案 3 :(得分:0)
如果您无法修改代码,则如果最初未编码,则无法获取未写入日志的任何内容。如果您没有看到PrintStackTrace,请确保您的设备已启用“调试模式”。否则,不,如果不修改代码,你就无能为力了。
如果您可以修改代码,可以将PrintStackTrace放入Log方法:
Log.e(TAG, "custom message", ex);