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

转载 2015年10月15日 15:18:48

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

在原生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中)。


Android资源代码 源码 整理 Github开源项目下载地址

第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、...
  • wengsheng147
  • wengsheng147
  • 2015年03月26日 08:32
  • 3820

滑动返回库SwipeBackLayout解析

这个库本身并没有很难, 但是它在交互方面的思想是超前的, 虽然现在我们对滑动返回已经习惯了, 但是在当时还是很新鲜的交互方式.如果要我实现滑动返回, 我第一个看的一定是DrawerLayout的实现,...
  • oqqShaw123
  • oqqShaw123
  • 2015年03月22日 12:16
  • 3902

开源项目Lottie的基本介绍(一)

大家好,最近开源了一个非常牛逼的项目:Lottie。有了它同学们在项目中添加炫酷的动画再也不愁了!放了这么一大波福利我当然需要关注。 一、基本介绍: Lottie是一个Android和IOS端...
  • zxm528
  • zxm528
  • 2017年02月07日 17:21
  • 3015

GifView的应用

自定义GIFView的用法: 首先先来看看别人提供的自定义GIFView的用法: 1、导入GIFView的jar包:地址:http://download.csdn.net/detail/weiwozh...
  • weiwozhiyi
  • weiwozhiyi
  • 2016年02月12日 11:23
  • 788

DragVideo,一种在播放视频时,可以任意拖拽的方案

# DragVideo A Method to Drag the Video When Playing Video 一种在播放视频时,能够拖拽的方案...
  • hejjunlin
  • hejjunlin
  • 2016年12月15日 07:36
  • 5137

Fresco 初体验各种问题解决

Fresco 初体验各种问题解决 xmlns:fresco="http://schemas.android.com/apk/res-auto"显示为灰色,没有应用到 解决办法 把引用图片的方式...
  • yy1300326388
  • yy1300326388
  • 2015年04月13日 11:27
  • 15877

PageSlidingTab的改进,项目中可以直接使用。

package com.slidetab; import android.annotation.SuppressLint; import android.content.Context; impor...
  • linghu_java
  • linghu_java
  • 2016年03月09日 20:50
  • 1985

SwipeBackActivity的学习遇到的问题

//摘要:关于SwipeBackActivity,主要注意以下几种情况: // 1.引入 compile ‘me.imid.swipebacklayout.lib:library:1.0.0’ /...
  • yangjianbo456
  • yangjianbo456
  • 2016年05月26日 18:25
  • 1594

Android编程中的常见问题及解决办法

在Android开发中新手通常会遇到各种各样调试不通过或者程序崩溃的问题,有些与环境配置有关、有些与代码编写有关。不管怎么说,有问题就要记录下来以便下次遇到同样的问题能够快速解决,同时也是对自己开发能...
  • chengcheng1986
  • chengcheng1986
  • 2014年01月07日 21:58
  • 1253

Android4.0后新特性Textureview的使用

先在空间记录些自己的平时研究的一些东西,既是个备忘录,也为以后CSDN的博客积攒些素材吧。         Textureview是google在android4.0后推出的一个新的控件,网上关于这...
  • First_code
  • First_code
  • 2014年08月21日 18:03
  • 473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android运行时异常“Binary XML file line # : Error inflating class”
举报原因:
原因补充:

(最多只允许输入30个字)