Binary XML file line #6: Error inflating class xxx

今天在重寫ImageView組件的時候,重寫工作完成了,完成功能就是多點放大縮小圖片,可是運行工程整個程序就crash掉了,並拋出如圖運行時異常:


搞了好久才把問題解決了,原來是在重寫組件的時候必須實現View裏面的三個構造方法,而我只實現了一個。

下面我把從網上找到的幾個可能引起該異常的情況總結一下:

第一種:自定義View,必須實現基類View的三個構造方法;

        public ZoomImageControl(Context context) {
		super(context);
	}
	public ZoomImageControl(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}
	public ZoomImageControl(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

第二種:自定義了一個View,將他用於佈局文件中的時候,假設他的包名爲cn.example,類名叫TestDemo,這個時候你在XML作爲佈局元素來佈局的話,必須使用完整路徑名,也就是包名加類名來引用cn.example.TestDemo。

 

第三種:資源文件有可能沒有找到,因爲系統應用在編譯時並不一定會將所有分辨率的資源文件都打包到apk文件裏。也就是在res/drawable-xxx文件夾裏面的文件。系統會根據分辨率來選擇加載不同drawable下文件夾的資源



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