[英]Print Stack Trace to Logcat
如何將堆棧跟蹤信息打印到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?
也許您正在尋找的方法可以在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);
這將讓您知道堆棧末尾是否未處理異常...
希望這可以幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.