Android編程:解決異常“android.view.InflateException: Binary XML file line # : Error inflating class”

今天寫程序發現一個問題,就是XML中報出android.view.InflateException異常,可能的原因有:

1.XML中使用到得組件名稱是否書寫正確(包名+類名),可以使用crtl+鼠標點擊看能不能跳轉到該組件的定義的地方,可以的話就不是這個問題,如果不可以的話,就是這個問題

2.拋出異常時的main.xml與自定義View類相關代碼如下:就是自定義的組件中的構造方法有沒有書寫正確

main.xml

繼承View的類Chessboard.java:

對於此異常,如下進行修改:添加View類的另一個構造方法

3.這個問題很是蛋疼,也是我遇到的問題,搞了我一天的時間,就是工程的編碼問題,場景是:從github上下載一個開源組件demo,導入到本地的Eclispe中,就是報錯,開始因爲是上述的兩個問題,但是最後發現都不是,然後又以爲是Eclipse版本或者是SDK,ADT這樣的版本的問題,耗費了我好長時間,最後想起來github上的這些開源都是老外們寫的東東,肯定用的是UTF-8編碼的,但是我本地Eclipse的編碼是GBK,所以我立馬改了一下編碼,終於解決了,所以在這裏深深的體會到,在使用Eclipse導入工程的時候,還用注意編碼的問題,切記!

4.這個問題也是不難發現的,不會經常遇到,就是在多屏適配的時候,比如你在values-sw720文件夾中定義了dimens的一個尺寸,但是沒有在values中定義相應的尺寸大小,然後在xml中使用了這個dimens尺寸,當你運行程序到720p(三星平板)的設備上是沒有問題的,如果將程序跑在480的設備上,就會出現這種異常(原因是480設備可能會從values文件夾中查找尺寸,找不到出錯),這個問題很難發現。所以我們在做屏幕適配工作的時候,一定要謹慎。

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