Android运行时异常“Binary XML file line # : Error inflating class”

在原生Android下编译APK,编译没有问题,但是在运行的时候经常出现如标题所描述的异常,然后整个程序Crash掉......

我遇到该问题常常都是因为修改了资源文件所引起,大致有以下几种方式来解决:

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.找不到资源文件:我原来在2.3的原生系统增加动态壁纸的时候,动态壁纸一跑起来就出这个异常,然后crash,当时就是因为找不到drawable的资源文件,于是当时我把drawable的hdpi或nodpi等文件夹的图片资源都拷贝一份到drawble下,问题解决(当时一直不明白系统会根据分辨率来选择加载不同drawable下文件夹的资源,为什么这里必须放入drawable中)。

转载自:http://blog.csdn.net/huangxiaohu_coder/article/details/8497286

/*******************************************/

我的问题就是出现在没有全部重载3个构造函数,为什么需要重载呢?

因为我在xml布局文件引用引用它时用到了属性

    <com.eatables.views.G_StatusView
        android:id="@+id/order_status_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"/>

所以看懂了吧,构造函数也需要属性的。

时间: 2025-01-18 16:25:21

Android运行时异常“Binary XML file line # : Error inflating class”的相关文章

Android(java)学习笔记152:Android运行时异常“Binary XML file line # : Error inflating class”

在原生Android下编译APK,编译没有问题,但是在运行的时候经常出现如标题所描述的异常,然后整个程序Crash掉......     我遇到该问题常常都是因为修改了资源文件所引起,大致有以下几种方式来解决:     1. 引用类名问题:自定义了一个View,将他用于布局文件中,假设他的包名叫MyPackage,类名叫MyTestView,这个时候你在XML作为布局元素来布局的话,必须使用完整路径名,也就是包名加类名来引用,用MyPackage.MyTestView来进行引用.     2.构

android运行时异常:Binary XML file line # : Error inflating class

自定义View时出现的,搞了好半天终于搞好了. 继承View时要要实现它所有的构造函数. 如: 1 public class hongdian extends View { 2 float x=40; 3 float y=50; 4 Paint p = new Paint(); 5 //要实现的构造 6 public hongdian(Context context) { 7 super(context); 8 } 9 //要实现的构造函数 10 public hongdian(Context

(偶发闪退现象) 反复启动结束activity异常 android.view.InflateException: Binary XML file line ... Error inflating class &lt;unknown&gt;

最近在项目中遇到长时间反复启动结束一个activity是会出现崩溃的情况,错误报告:android.view.InflateException: Binary XML file line ... Error inflating class <unknown> 查询资料有大神说是内存溢出(http://stackoverflow.com/questions/7536988/android-app-out-of-memory-issues-tried-everything-and-still-at

Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误

这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面.    当时,我仔细检查了一下自己的代码,并没有发现什么问题,在logcat上显示的报错如下:AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class(这是其中报错的最主要的一行信息).  于是我在百度上几乎查看

android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) 。异常

android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) . 其实是因为out of memory,导致 xml是不可能被充气成功,因此activity的onCreate方法中, setContentView(R.layout.***)也就不可能成功调用. 他出现在我有多个教学动画,并且播放的动画,是基于imageView,imageView的背景是我们项目的大型图片

android 细节之android.view.InflateException: Binary XML file line #95: Error inflating class(out of m)

今天的异常很有意思,叫做android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) . 其实是因为out of memory,导致 xml是不可能被充气成功,因此activity的onCreate方法中, setContentView(R.layout.***)也就不可能成功调用. 他出现在我有多个教学动画,并且播放的动画,是基于imageView,imageView的

bug_ _ android.view.InflateException: Binary XML file line #2: Error inflating class &lt;unknown

===== 2 ==== 1  android.view.InflateException: Binary XML file line #2: Error inflating class <unknown 莫名其妙的出现这个错,看了logcat 说是什么二进制xml错误啥的... 不过后来发现,这个一般都是给eclipse项目中添加图片等资源时出现的一些bug,看似添加到项目中,其实没有,或者是你是选取的引用模式,而你在外面又把那个图片给重命名了,所以在jvm运行时会报错, 说什么xml lin

android Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Must specify unique

今天写了一个静态得fragment,好久没写了,一写就出现问题了,先看下布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&qu

widget自定义控件【android.view.InflateException: Binary XML file line #2: Error inflating class...】

此错误比较难定位,场景是这样的:在一个widget中使用了自定义控件,始终会报 android.view.InflateException: Binary XML file line #2: Error inflating class...这个错误. 最后实在没有办法了,写了一个demo中只有一个重写的textview(仅仅是继承textview并无其他代码),将其引入到布局文件仍然报同样的错误. 后来经过查找资料,发现removeview比支持复杂的view,连listview都不支持,更不用