Android技巧 防崩潰處理

2021-08-15 15:59:53 字數 3484 閱讀 2569

簡單介紹:

程式中,可以捕捉到的異常,通常使用try...catch..finally來解決,但還存在一些我們沒有捕捉到的異常,例如,使用控制項不繫結,變數未初始化等,而捕捉這些由於疏忽而產生的異常則使用 uncaughtexceptionhandler物件來實現。

常見的異常奔潰帶來的處理步驟:

1)將錯誤異常等記錄到本地日誌中

2)彈出彈窗,提醒使用者出現bug,請使用者配合上傳錯誤日誌

3)提醒使用者出現bug的功能暫時不要使用,然後彈到主頁面。

/**

* created by zhu hao on 2018/2/7.

*//**

* 全域性捕獲異常資訊

* 發生uncaught異常時,由該類來接管程式

*/public class

crashhandler

implements

uncaughtexceptionhandler

public static

crashhandler getinstance()

return

instance

;} }

public void

init(context context)

/*** 當uncaughexcept發生時會轉入該函式來處理 *

@param

thread

* @param

throwable

*/@override

public void

uncaughtexception(thread thread, throwable throwable)

if

(handleexception(throwable))

else

log.

i (

tag

,"uncaughtexception: 後捕捉到"

);}

/**

* 自定義錯誤處理,收集錯誤資訊,傳送錯誤報告等操作 *

@param

ex

* @return

true:如果處理了該錯誤資訊返回true,否則返回false

*/private boolean

handleexception(

final

throwable ex)

try

}.start();

log.

i (

tag

,"handleexception: crashhandler處理完成"

);}catch

(exception e)

return true

;}

private void

showdialog(context context)

});builder.setnegativebutton(context.getresources().getstring(r.string.

),

new

dialoginte***ce.onclicklistener()

});dialog dialog=builder.create();

dialog.getwindow().settype(windowmanager.layoutparams.

type_system_alert

); dialog.show(); }

} 其中,debug_ex

是封裝的全域性引數,除錯時置成true,報錯容易看到,不除錯置成false,防止報錯,生成錯誤日誌。

index.

getinstance

fragmenulist

) 是封裝的fragment的切換方法。

使用方法:

/**

* created by jason zhu on 2017-08-21.

*/public class

aioextends

private static

aioinstance

; //用list儲存每個activity

private

list

mactivitylist

=new

linkedlist();

private

list

mservicelist

=new

linkedlist();

public static

aio getinstance()

return

instance

; }@override

public void

oncreate()

public void

addactivitylist(activity activity)

public void

addservicelist(service service )

public void

exit() }

for

(service service :

mservicelist

) }}catch

(exception e)

finally

},200);

// } }

}:

android 無故崩潰

啟動debug,直接崩潰,報 didn t find class androidx.core.content.fileprovider on path dexpathlist,將minisdk版本跳過,就不崩潰了 從21調回23 網上有很多說引用 androidx.multidex 庫,但對我的工程...

linux 核心崩潰處理

pc 1.定位 崩潰在核心中還是 ko cat proc kallsyms 1.txt c0034818 t kmalloc c00082a8 t quiet kernel 最開始的是虛擬位址 bf000000 t a cdd 由此可看 崩潰在 ko 2.定位崩潰在 ko中的哪個函式 arm lin...

VC window程式崩潰處理

程式設計師有太多的學習點,接觸不到就是乙個盲點,今天看到c 在window下的崩潰處理。從此可以在程式崩潰時啟動自己的處理程式,或者友好的告訴使用者了。include stdafx.h include include for exception access violation include in...