日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android调用c闪退未看到log,解决:Android开发 看不到崩溃的日志

發布時間:2025/4/16 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android调用c闪退未看到log,解决:Android开发 看不到崩溃的日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

應用當前界面崩潰停留在上個頁面,看不到崩潰日志

Android的logcat控制臺,看不到應用崩潰的日志?

如何攔截到未捕獲的異常,并打印出來,幫助我們快速定位到代碼問題呢?

最近同事跟我反應說開發的應用run的時候發生了崩潰,但是在logcat中,只看到了應用重啟的日志,類似下面這樣的:

追尋答案

那么怎樣查看錯誤日志,快速定位問題的原因呢?

1,由于崩潰的概率不會那么多,最開始的時候,純靠手速:

知道操作哪里會崩潰,先把logcat控制臺清下logcat控制臺日志,然后操作應用,快速Ctrl+Alt+A(QQ的截屏快捷鍵);呵呵這個考驗手速的方案,肯定不可取;

2,通過切換channel進程和dead進程查看錯誤日志,這個能看到一些日志,但是也不是很全面,不可取;

3,根據業務粗略定位產生問題的代碼段,通過try catch包裹,通過debug跟蹤代碼一步步跟到問題所在;

這種適合代碼邏輯清晰、簡單地方,如果循環、接口回調、多線程等操作比較多,是很不易跟到具體問題的。 4,最好的方案是攔截到正常代碼中未捕獲的異常,然后能夠單獨打印出來,方便我們調試和查看。

接下來就看下如何去實現攔截未捕獲的異常的。

確定方案

首先,我們要先了解一個UncaughtExceptionHandler,它能幫助我們捕獲到全局的異常,

具體用法是Application的onCreate方法中調用

@Override

public void onCreate() {

super.onCreate();

// 以下用來捕獲程序崩潰異常

// 程序崩潰時觸發線程

Thread.setDefaultUncaughtExceptionHandler(new OwnUncaughtExceptionHandler());

}

其中OwnUncaughtExceptionHandler繼承UncaughtExceptionHandler,并重寫uncaughtException方法,

public class OwnUncaughtExceptionHandlerimplements Thread.UncaughtExceptionHandler {

@Override

public void uncaughtException(Thread thread, Throwable ex) {

StackTraceElement[] elements = ex.getStackTrace();

StringBuilder reason =new StringBuilder(ex.toString());

if (elements !=null && elements.length >0) {

for (StackTraceElement element : elements) {

reason.append("\n");

reason.append(element.toString());

}

}

Log.e("zyq", reason.toString());

android.os.Process.killProcess(android.os.Process.myPid());

}

}

看到結果

然后保存再運行你的程序,就可以在logcat中看到程序崩潰相應的日志了,如果程序沒有崩潰,你可以自己造個空指針異常試驗下,

在logcat控制臺可以看到: 注意:過濾日志的地方選擇 No Filters

感謝

如果覺得本文對你有幫助,請收藏加關注,有任何疑問,可以私信交流或者評論,謝謝!

總結

以上是生活随笔為你收集整理的android调用c闪退未看到log,解决:Android开发 看不到崩溃的日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。