大部分crash應該都是有空指標異常導致的
對於大部分的簡單的空指標異常,請相信編譯器。android studio中,對於大部分可能出現異常的情況,都會有相應的警告。
請盡量處理編譯器的警告
大部分專案,應該eclipse中開發,可以轉換為android studio專案,或者將**複製到android中。
android studio的警告,錯誤提示比eclipse好的多。
如果在onpostexecute存在重新整理頁面的動作,請先判斷當前的activity是否存在。
在onpostexecute中,最常見的操作應該是toast和closeprocess。
對於這兩者,可以在basefragment和baseactivity提供方法。該方法要先判斷activity是否存在。
關鍵方法1:
public boolean isactivityfinish()
關鍵方法2:
public void closeprocess()
if (mprogressdialog != null)
}
關鍵方法3:
public void showtoast(int rid)
toast.maketext(this, rid, toast.length_short).show();
}
有些情況下,初始化過程比較久,為了避免anr,我們需要把初始化過程放在非同步執行緒裡。這就出現了相應問題:
對於變數,初始化後才能賦值。
如果立即使用,初始化過程未結束,就可能出現crash異常
規範方法:
如果可以使用預設值的,請在宣告的同時設定預設值。
使用同步鎖。如果變數未初始化完成,等待一段時間(自定),直至初始化完成。
mvp實現了**和邏輯的分離,但是也會引入記憶體洩露問題。
為了解決記憶體洩露,就需要及時置空view和presenter物件,這樣就很可能出現crash。這一現象大量存在,可以批量處理。
在基類介面中宣告,isviewactive方法,要求所有的presenter實現該方法,可以有效減少這類現象。
作為乙個不斷迭代演進的系統,版本相容無法避免。
檢視官方的變更記錄和說明,提前做好規避
提前使用新版本編譯。檢視是否有異常。
作為rom的應用,很少有個這個問題。但是在demo經常遇到。敏感許可權要使用動態宣告,並且做出處理。
這是乙個低階的常見錯誤:
使用了乙個activity,但是卻沒有在配置檔案中宣告。
其他建議:
crash使用總結
想要知道該down read所處的位置 crash bt 1620 pid 1620 task ffff88812edb4a00 cpu 6 command mount clear soc 0 ffffc900005e3c88 schedule at ffffffff82248906 1 ffffc...
Android常見Crash原因總結(二)
android平台程式崩潰大家都應該遇到過,force close和anr應該是大家遇到較多的。這裡把android平台程式崩潰的各種型別做乙個簡述和原因列舉。1.anr 可見anr 發生場景 應用發生anr。崩潰症狀 系統彈出視窗詢問使用者選擇 force close 或者 wait force ...
Crash 的文明世界
題目描述 給一棵樹,求以每個點為根時下列式子的值。題解 當k 1時這就是乙個經典的換根dp問題。所以這道題還是要用換根dp解決。部分分做法 考慮轉移時是這樣的乙個形式 圖是抄的 用二項式定理展開就可以nk2做了。觀察到結果是乙個xk的形式。然後這個可以用斯特林數代換。我們可以先求出每個點的後面的東西...