Exception_android_InflateException
2016-08-25 16:06
225 查看
常常在引用自定义控件的时候而出现这个异常,一般情况下就是下列某种情况导致的:
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)这行代码,这其实是没必要的,我曾经就是这个问题导致的。
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)这行代码,这其实是没必要的,我曾经就是这个问题导致的。
相关文章推荐
- android.view.InflateException:: Error inflating class com.esri.android.map.MapView
- android:android.content.res.Resources$NotFoundException: String resource ID #..
- 错误ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
- com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process
- Android出现java.net.SocketException: Permission denied
- Android异常--java.io.FileNotFoundException下载文件时异常
- android.content.ActivityNotFoundException:
- android.os.NetworkOnMainThreadException异常 (转)
- java.lang.ClassCastException: android.app.Application cannot be cast to
- Android经典Exception汇总
- Android使用UncaughtExceptionHandler捕获全局异常
- java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ScrollView.smo
- android.os.NetworkOnMainThreadException
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- 【边做项目边学Android】异常处理:android.os.NetworkOnMainThreadException--多线程问题
- android.os.NetworkOnMainThreadException 异常处理
- 可能是布局文件的问题 java.lang.ClassNotFoundException: android.graphics.drawable.RippleDrawable
- java.lang.ClassCastException: android.widget.ImageButton异常处理
- java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException
- Android-java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.pr