android.view.inflateexception binary xml file line 异常的解决方法

简介:

有时候一个很简单的xml布局文件,运行却抛出以下异常:

07-25 10:40:50.966: D/AndroidRuntime(31570): Shutting down VM
07-25 10:40:50.966: W/dalvikvm(31570): threadid=1: thread exiting with uncaught exception (group=0x42441700)
07-25 10:40:50.976: E/AndroidRuntime(31570): FATAL EXCEPTION: main
07-25 10:40:50.976: E/AndroidRuntime(31570): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.moveball/com.example.moveball.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class com.example.moveball.DrawView
07-25 10:40:50.976: E/AndroidRuntime(31570): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308)
07-25 10:40:50.976: E/AndroidRuntime(31570): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362)
07-25 10:40:50.976: E/AndroidRuntime(31570): at android.app.ActivityThread.access$700(ActivityThread.java:168)
07-25 10:40:50.976: E/AndroidRuntime(31570): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)

出现这种异常,一般是与相应的xml的标签和属性的命名、定义有关。

有时候很小的错误就会产生这种问题,这种小错误一般很难检查,所以在写代码的时候就要有所注意,免得之后检查起来麻烦。

比如:控件EditText写成了TextView等小问题

又如:没有找到资源文件。

提示:可以参考我的另外一篇文章《Android资源文件夹及资源文件的详细介绍》

一般看看res/下面的资源文件,比如全放在drawable-mdpi/目录下,,将drawable-mdpi/下的资源文件拷贝一份到drawable-ldpi/目录下,还是报错误,再拷贝一份到drawable-hdpi/目录下,问题解决。

要经常怀疑寻找的位置资源文件不存在。

一般在res/下建一目录drawable/,将drawable-mdpi/下所有的资源文件都拷贝到drawable/下即可。

这些类似的等等资源文件的错误需要注意。

总结一下xml文件经常容易犯的低级错误:

1. 控件名称不能写错

2.名称的大小写要区分,如EditText与editText是完全不一样的

3.标签一定是成对出现的,尤其是嵌套布局

4.属性前面一般要加android:

5.id比较特殊,应该是@+id ,其它的直接加@即可,如@string

6.drawable中引用的图片资源不存在或名称大小写有误

 

此外,出现这种异常还可能与自定义的View类有关,需要增加一个带属性的构造函数

抛出异常时的main.xml与自定义View类相关代码如下:

activity_main.xml:

<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


    <com.example.moveball.DrawView
        android:id="@+id/drawView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </com.example.moveball.DrawView>


</RelativeLayout></span>


继承View的类的自定义View:

<span style="font-size:14px;">public class DrawView extends View{
	
	private float circleX = 40;
	private float circleY = 50;
	private float circleR = 15;
	
//	构造方法
	public DrawView(Context context){
		super(context);
	}
	
//	重写ondraw方法   下面代码省略了...</span>



对于此异常,如下进行修改:添加View类的另一个构造方法即可解决问题!

<span style="font-size:14px;">public class DrawView extends View{
	
	private float circleX = 40;
	private float circleY = 50;
	private float circleR = 15;
	
//	构造方法
	public DrawView(Context context,AttributeSet attrs){
		super(context,attrs);
	}</span>


总之抛出这种异常的原因有可能是必须实现的构造器没有实现:

须实现三个构造函数
    public GalleryFlow(Context context) {
            super(context);
    }

    public GalleryFlow(Context context, AttributeSet attrs) {
            super(context, attrs);
    }

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



目录
相关文章
|
6月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
240 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
7月前
|
XML 数据格式 Python
【Python】已解决:xml.parsers.expat.ExpatError: no element found: Line 1, column 0
【Python】已解决:xml.parsers.expat.ExpatError: no element found: Line 1, column 0
215 0
|
7月前
|
XML 数据格式 Python
【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘./1.xml’
【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘./1.xml’
392 0
|
9月前
|
Android开发
Android 盒子开发过程中遇到的问题及解决方法
Android 盒子开发过程中遇到的问题及解决方法
59 2
|
8月前
|
Shell Go 开发工具
How to decompile Google Android .apk file as readable dump【原创】
How to decompile Google Android .apk file as readable dump【原创】
45 0
|
9月前
|
Android开发
Android stdio 无法新建或打开AIDL文件(解决方法)
Android stdio 无法新建或打开AIDL文件(解决方法)
729 0
|
9月前
|
Android开发
Android事件冲突原理及解决方法
Android事件冲突原理及解决方法
88 0
|
9月前
|
XML Android开发 数据格式
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class
87 0
|
9月前
|
Android开发
Android Uri转File方法(适配android 10以上版本及android 10以下版本)
Android Uri转File方法(适配android 10以上版本及android 10以下版本)
860 0
|
9月前
|
XML 数据格式
android.view.InflateException: Binary XML file line #0: Attempt to invoke virtual
android.view.InflateException: Binary XML file line #0: Attempt to invoke virtual
51 0

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    SaxReader读取,更新xml文件