zoukankan      html  css  js  c++  java
  • 关于android.view.InflateException【转载】

    在AndroidStudio中编译没有问题,但是运行时会crash,常发生于自定义View的引用。出现问题的原因大致分为以下几种

    1.引用View的路径问题:如果自定义的view为CustomerView,所在的文件夹路径为view,因此在XML布局文件中引用的时候必须是view.CustomerView全路径才可以,不然系统找不到该View。

    2.构造函数问题:自定义一个View,必须实现基类view的三个构造函数

    CustomView(Context context)

    CustomView(Context context, @Nullable AttributeSet attrs)

    CustomView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)

    从google官网上来看,后面两种构造函数在用XML引入View的方式中,必须重写。(原因不知道)

    3.编译的中间文件没有清理干净:第三种就是你在原生系统代码的编译环境下编译APK之后,特别是修改了XML,出现标题所述现象,这个时候你只需要删除out目录下编译生成的中间文件夹即可(具体名字记不清了:在编译过程中,系统会将那个位置打印出来,通过串口来看吧,…/out/……/…./classes.dex,你循着这个路径往前推到你的应用的project名字那一层文件夹),删除再重新make就OK了。 

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



    作者:喵喵WW
    链接:https://www.jianshu.com/p/d793300184bc
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    HTTP 错误 404.2
    SQL Server 2008 R2如何开启数据库的远程连接(转)
    CSS中font-family:中文字体对应的英文名称
    15/18位身份证号码正则表达式(详细版)
    C#获取系统时间及时间格式
    C#正则表达式判断输入日期格式是否正确
    Linux查看机器负载
    模拟HTTP请求超时时间设置
    MySQL show命令的用法
    innodb事务隔离级别
  • 原文地址:https://www.cnblogs.com/jiangzuomeng/p/11957883.html
Copyright © 2011-2022 走看看