java代碼致使jvm退出,彈出「程序已經崩潰」的對話框,最終用戶點擊關閉後進程退出。Logcat會在「AndroidRuntime」tag下輸出Java的調用棧。java
No.&Name數組 |
Reasonapp |
Resolutionjvm |
Comment工具 |
1.空指針spa |
試圖對空指針進行操做時(如讀取空指針指向的內存),處理器就會產生一個異常指針 |
在使用指針前加以判斷,若是爲空,則是不可訪問的。進程 |
空指針目前是糯米app最多的一種引發crash的緣由,可是它也很容易被發現和修復。內存 |
2.野指針開發 |
指向的是一個無效的地址,該地址若是是不可讀不可寫的,那麼會立刻Crash;若是訪問的地址爲可寫,並且經過野指針修改了該處的內存,那麼頗有可能會等一段時間(其它的代碼使用了該處的內存後)才發生Crash。 |
|
。 |
數組越界 |
訪問無效的地址。若是該地址不可讀寫,則會立刻Crash;若是修改了該處的內存,形成內存破壞,那麼有可能會等一段時間纔在別處發生Crash。 |
|
破壞內存的bug,很難查找。 |
整數除以零 |
整數除以零默認的處理方式是終止進程 |
在作整數除法時,要判斷被除數是否爲0的狀況。 |
改狀況在開發環境下很難出現,但龐大的用戶量和複雜的用戶輸入,就很容易致使被除數爲0的狀況出現。 |
格式化輸出參數錯誤 |
與野指針相似,可是隻會讀取無效地址的內存,而不會形成內存破壞。其結果是要麼打印出錯亂的數據,要麼訪問了無讀寫權限的內存而當即宕機。 |
在書寫輸出格式和參數時,要作到參數個數和類型都要與輸出格式一致 |