android自定义view android.view.InflateException: Binary XML file line

Android异常汇集----1. android.view.InflateException: 

                                       Binary XML file line #6: Error inflating class com.examp..

 
 
本节正文:
    自定义view时候出现了该异常问题,在网上查了很久,然后对比代码。
     总结网上以及自己分析问题如下,由于此异常通常出现错误地点不同,分析此问题步奏通常按照以下几步即可:
 

    1). 引用类名问题

         自定义了一个View,将用于布局文件xml中(包名com.android.test,类名MyTestView),在XML作为布局元素来布局的话,

        必须使用完整路径名:com.android.test.MyTestView,也就是包名加类名来引用。

        正确写法:  

 

  1.  
    <com.android.test.MyTestView
  2.  
    android:id="@+id/test"
  3.  
    android:layout_width="fill_parent"
  4.  
    android:layout_height="fill_parent" />
        错误写法:

 

 

  1.  
    <MyTestView
  2.  
    android:id="@+id/test"
  3.  
    android:layout_width="fill_parent"
  4.  
    android:layout_height="fill_parent" />

 

    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).编译的中间文件没有清理干净, 使用Eclipse clean 下.

 

    4).找不到资源文件:因为找不到相关的资源文件,xml 文件隐含有错误,确保xml 一定是对的.

 

     这上面四个分析一般会出现前两种错误,一定要检查好定义的xml 无误,然后引用类名没有问题。如果还是会报错的话, 问题还是应该出现在第二步了。尽管上面四步都检查过,回头再仔细看。

你可能感兴趣的:(android自定义view android.view.InflateException: Binary XML file line)