如何将堆栈跟踪打印到logcat?
当应用程序通过Eclipse运行并且应用程序崩溃时,我在logcat窗口中收到一系列消息,如“FATAL EXCEPTION:main”,并打印堆栈跟踪。但是,当我从命令行使用adb logcat命令时,我看不到这些消息中的任何一个?我只看到一条消息说example.app已经死了。
如何使用adb logcat命令获取Eclipse logcat窗口中显示的相同堆栈跟踪?
修改以澄清:
当我在设备连接到计算机时重现崩溃时,堆栈跟踪将打印到日志中,但在设备未连接到计算机时重现崩溃时则不会。
在设备未连接到计算机时重现崩溃后,我插入usb线并使用:'adb logcat -d'而不是一个好的堆栈跟踪,我看到的与崩溃相关的唯一事情是:
I/WindowManager( 656): WIN DEATH: Window{42aba898 XXXXXXXXXX.XXXXXXX.XXXXX.XXXXXX/XXXXXXXXXX.XXXXXXX.XXXXX.XXXXXX.XXXXXXXXXXXX paused=false}
I/ActivityManager( 656): Process example.app (pid 28681) has died.
I/WindowManager( 656): WIN DEATH: Window{42aa9548 XXXXXXXXXX.XXXXXXX.XXXXX.XXXXXX/XXXXXXXXXX.XXXXXXX.XXXXX.XXXXXX.XXXXXXXXXXXXXX paused=true}
当设备未连接到计算机时,有没有办法让堆栈跟踪仍然打印到logcat?
答案 0 :(得分:2)
也许你正在寻找的方法来显示Logcat中的整个异常能够跟踪它并标记它就是这个:
android.util.Log.e(“你的标签”,“你的消息”,exceptionReference);
如果您想了解任何未捕获的异常,无论您是否知道它发生在何处,这都是您在应用程序刚刚启动时必须要做的事情(Application Context类将是一个好地方......):
UncaughtExceptionHandler uncaughtExceptionHandler = new UncaughtExceptionHandler(){
@Override
public void uncaughtException(Thread thread,
Throwable ex) {
//Here print the log...
}
};
Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler);
这将告诉您堆栈末尾是否未处理异常...
希望这会有所帮助......