經常遇到的代碼錯誤總結

  1. 歷史原因,項目中既有com.alibaba.fastjson.JSONObject又有org.json.JSONObject。把com.alibaba.fastjson.JSONObject強制轉換成org.json.JSONObject導致錯誤。
  2. 代碼混淆:有多少次花大把的時間調試bug最後發現是實體類被混淆了導致的。實體類混淆創造了在同一個地方跌倒的最大次數的記錄。

4.x系統機型上兼容問題

  1. ListView中類轉換異常,錯誤日誌。

    java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to 
    android.widget.AbsListView$LayoutParams
    at android.widget.ListView.setupChild(ListView.java:1901)

    導致錯誤的代碼是按下面第一行寫法寫的,第三行寫法是正確的。

    view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    
    view.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT,AbsListView.LayoutParams.MATCH_PARENT));

     

  2. 這是因爲在4.x系統上setupChild源碼是這樣寫的

    AbsListView.LayoutParams p = (AbsListView.LayoutParams) child.getLayoutParams();
    if (p == null) {
        p = (AbsListView.LayoutParams) generateDefaultLayoutParams();
    }

    所以 導致類轉換異常。

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章