這篇文章主要介紹了Android 相容性問題:java.lang.UnsupportedOperationException解決辦法的相關資料,需要的朋友可以參考下
在前幾天的開發中,遇到這麼個非常奇葩的異常,有些手機可以運行,有些手機卻直接崩了,今天就把這異常整理下。
首先還是貼上其異常信息
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資料夾都必須得有。
【相關推薦】
1. 特別推薦#:「php程式設計師工具箱」V0.1版本下載
2. Python免費影片教學
以上是分享一個解決Android 相容性問題的python方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!