在前幾天的開發中,遇到這么個非常奇葩的異常,有些手機可以運行,有些手機卻直接就崩了,今天就把這異常整理下。
首先還是貼上其異常信息
E/AndroidRuntime: FATAL EXCEPTION: mainandroid.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.InvocationTargetExceptionat 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=0x1at 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文件夾。
新聞熱點
疑難解答