Android 兼容性问题:java.lang.UnsupportedOperationException解决办法

yipeiwu_com7年前Python基础

在前几天的开发中,遇到这么个非常奇葩的异常,有些手机可以运行,有些手机却直接就崩了,今天就把这异常整理下。

首先还是贴上其异常信息

E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.hy.taotao.utils.GlobalUtils.inflate(GlobalUtils.java:91)
at com.hy.taotao.base.BaseFragment.onCreateView(BaseFragment.java:59)
...

Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)?
...

Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:468)
at android.widget.TextView.<init>(TextView.java:944)
at android.widget.TextView.<init>(TextView.java:605)
at java.lang.reflect.Constructor.constructNative(Native Method)?
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)?
at android.view.LayoutInflater.createView(LayoutInflater.java:587)?
...

上面我将主要的异常信息整理了出来,首先可以看看这一句,我们可以从上面得到的信息是 “xml文件13行导致的错误,原因是dimension文件找不到 type=0x1的元素”,后来同事在网上查了N多资料说的是values里面少了默认值,后面终于找到了缺少的默认值…

1.首先看看报错之前的文件夹截图,可以看到在一部分values-v19的文件,在values上都看不到,而values-v19文件夹是Api19的设备使用该目录下的文件夹,当设备找不到对应的名为values-*的文件夹,就会去找默认的values文件夹下的文件,那么找不到的话,就发生了上面的异常了。

这里写图片描述

2.那么知道了问题所在,就得解决了

1)将values-***全部备份后删掉。

2)将备份后的values-***里的文件添加到默认的values文件夹。

3.其实在上述2中这种方式一般是不推荐的,如果手机屏幕适配的话,当然不能只保留values这个默认的文件夹,但是切记在其他values-*文件夹的元素,在默认的values文件夹都必须得有。

4.下面是简单处理之后的截图

这里写图片描述

总结:

1.在做第三方集成等等情况的时候,切记:在其他values-*文件夹的元素,在默认的values文件夹都必须得有。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

python实现汉诺塔递归算法经典案例

python实现汉诺塔递归算法经典案例

    学到递归的时候有个汉诺塔的练习,汉诺塔应该是学习计算机递归算法的经典入门案例了,所以本人觉得可以写篇博客来表达一下自己的见解。这markdown编辑...

使用Python设计一个代码统计工具

问题 设计一个程序,用于统计一个项目中的代码行数,包括文件个数,代码行数,注释行数,空行行数。尽量设计灵活一点可以通过输入不同参数来统计不同语言的项目,例如: # type用于指定文...

python中property属性的介绍及其应用详解

Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回。 使用property修饰的实例方法被调用时,可以把它当做实例属性一样 pr...

使用python对多个txt文件中的数据进行筛选的方法

使用python对多个txt文件中的数据进行筛选的方法

一、问题描述 筛选出多个txt文件中需要的数据 二、数据准备 这是我自己建立的要处理的文件,里面是随意写的一些数字和字母 三、程序编写 import os def eachFi...

用Python编写一个简单的Lisp解释器的教程

用Python编写一个简单的Lisp解释器的教程

本文有两个目的: 一是讲述实现计算机语言解释器的通用方法,另外一点,着重展示如何使用Python来实现Lisp方言Scheme的一个子集。我将我的解释器称之为Lispy (lis.py)...