在前幾天的開發中,遇到這么個非常奇葩的異常,有些手機可以運行,有些手機卻直接就崩了,今天就把這異常整理下。
首先還是貼上其異常信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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文件夾都必須得有。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/yk377657321/article/details/51814909