簡體   English   中英

將堆棧跟蹤打印到Logcat

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM