Exception_android_InflateException

    常常在引用自定義控件的時候而出現這個異常,一般情況下就是下列某種情況導致的:

    1. 引用類名問題:自定義了一個View,將他用於佈局文件中,假設他的包名叫MyPackage,類名叫MyTestView,這個時候你在XML作爲佈局元素來佈局的話,必須使用完整路徑名,也就是包名加類名來引用,用MyPackage.MyTestView來進行引用。


    2.構造函數問題:自定義一個View,必須派生實現基類View的三個構造函數

    View(Context context)     //Simple constructor to use when creating a view from code

    View(Context context, AttributeSet attrs)     //Constructor that is called when inflating a view from XML

    View(Context context, AttributeSet attrs, int defStyle)     //Perform inflation from XML and apply a class-specific base style

    從文檔上的介紹來看,第二個和第三個構造函數對於XML這種引用方式是必須實現的,這三個構造函數應該是在不同的應用場合來實例化一個View對象。


    3.編譯的中間文件沒有清理乾淨:第三種就是你在原生系統代碼的編譯環境下編譯APK之後,特別是修改了XML,出現標題所述現象,這個時候你只需要刪除out目錄下編譯生成的中間文件夾即可(具體名字記不清了:在編譯過程中,系統會將那個位置打印出來,通過串口來看吧,.../out/....../..../classes.dex,你循着這個路徑往前推到你的應用的project名字那一層文件夾),刪除再重新make就OK了。


    4.找不到資源文件:確定不同分辨率下面的資源文件夾裏是不是都有資源文件。


    5.在寫自定義控件的時候:根據網上的一些資料 加了有this.addView(view)這行代碼,這其實是沒必要的,我曾經就是這個問題導致的。


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