UnsupportedOperationException: Failed to resolve attribute xxx系列的問(wèn)題

最近開(kāi)發(fā)的時(shí)候遇到這么一個(gè)崩潰弊添,找了半天原因終于找到問(wèn)題的原因债鸡。

Caused by: android.view.InflateException: Binary XML file line #33: Error inflating class com.qmuiteam.qmui.widget.dialog.QMUIDialogView                                                                    
Caused by: java.lang.reflect.InvocationTargetException                                                                                                                                                      
    at java.lang.reflect.Constructor.newInstance0(Native Method)                                                                                                                                            
    at java.lang.reflect.Constructor.newInstance(Constructor.java:334)                                                                                                                                      
    at android.view.LayoutInflater.createView(LayoutInflater.java:647)                                                                                                                                      
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)                                                                                                                               
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)                                                                                                                               
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)                                                                                                                                        
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)                                                                                                                                
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)                                                                                                                                         
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)                                                                                                                                         
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)                                                                                                                                         
    at com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder.create(QMUIDialogBuilder.java:318)                                                                                                                 
    at com.easy.easycan.me.ProfileFragment.contactService(ProfileFragment.java:224)                                                                                                                         
    at com.easy.easycan.me.ProfileFragment.access$100(ProfileFragment.java:63)                                                                                                                              
    at com.easy.easycan.me.ProfileFragment$5.accept(ProfileFragment.java:177)                                                                                                                               
    at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)                                                                                                                        
    at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:111)                                                                                                                        
    at io.reactivex.internal.operators.observable.ObservableThrottleFirstTimed$DebounceTimedObserver.onNext(ObservableThrottleFirstTimed.java:82)                                                           
    at com.jakewharton.rxbinding2.view.ViewClickObservable$Listener.onClick(ViewClickObservable.java:39)                                                                                                    
    at android.view.View.performClick(View.java:6294)                                                                                                                                                       
    at android.view.View$PerformClick.run(View.java:24770)                                                                                                                                                  
    at android.os.Handler.handleCallback(Handler.java:790)                                                                                                                                                  
    at android.os.Handler.dispatchMessage(Handler.java:99)                                                                                                                                                  
    at android.os.Looper.loop(Looper.java:164)                                                                                                                                                              
    at android.app.ActivityThread.main(ActivityThread.java:6494)                                                                                                                                            
    at java.lang.reflect.Method.invoke(Native Method)                                                                                                                                                       
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)                                                                                                                    
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)                                                                                                                                         
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f0302a9 a=2}                                                                             
    at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:944)                                                                                                                            
    at android.content.res.TypedArray.getDrawable(TypedArray.java:928)                                                                                                                                      
    at android.view.View.<init>(View.java:4768)                                                                                                                                                             
    at android.view.ViewGroup.<init>(ViewGroup.java:597)                                                                                                                                                    
    at android.widget.LinearLayout.<init>(LinearLayout.java:234)                                                                                                                                            
    at android.widget.LinearLayout.<init>(LinearLayout.java:230)                                                                                                                                            
    at com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout.<init>(QMUIAlphaLinearLayout.java:39)                                                                                                                  
    at com.qmuiteam.qmui.layout.QMUILinearLayout.<init>(QMUILinearLayout.java:45)                                                                                                                           
    at com.qmuiteam.qmui.widget.dialog.QMUIDialogView.<init>(QMUIDialogView.java:48)                                                                                                                        
    at com.qmuiteam.qmui.widget.dialog.QMUIDialogView.<init>(QMUIDialogView.java:44)                                                                                                                        
    ... 27 more                                                                                                                                                                                                
                                                                                                                                                                                                            

主要的問(wèn)題是這個(gè)

Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f0302a9 a=2}

這個(gè)錯(cuò)誤是TypedArray代碼拋出的
frameworks/base/core/java/android/content/res/TypedArray.java

    public ColorStateList getColorStateList(int index) {
        if (mRecycled) {
            throw new RuntimeException("Cannot make calls to a recycled instance!");
        }
 
        final TypedValue value = mValue;
        if (getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, value)) {
            if (value.type == TypedValue.TYPE_ATTRIBUTE) {
                throw new UnsupportedOperationException(
                        "Failed to resolve attribute at index " + index + ": " + value);
            }
            return mResources.loadColorStateList(value, value.resourceId, mTheme);
        }
        return null;
    }

上邊的源碼可以看出是TypedValue.TYPE_ATTRIBUTE類型就會(huì)拋出這個(gè)exception
可以看出TypedValue{t=0x2/d=0x1010351 a=1}其中的t=0x2就是指類型為2,其它含義參見(jiàn)代碼

    public String toString()
    {
        StringBuilder sb = new StringBuilder();
        sb.append("TypedValue{t=0x").append(Integer.toHexString(type));
        sb.append("/d=0x").append(Integer.toHexString(data));
        if (type == TYPE_STRING) {
            sb.append(" \"").append(string != null ? string : "<null>").append("\"");
        }
        if (assetCookie != 0) {
            sb.append(" a=").append(assetCookie);
        }
        if (resourceId != 0) {
            sb.append(" r=0x").append(Integer.toHexString(resourceId));
        }
        sb.append("}");
        return sb.toString();
    }

其中的"a="只對(duì)string有意義庸论,這個(gè)獲取的是color职辅,所以“a=1”沒(méi)啥含義

    /** Additional information about where the value came from; only
     *  set for strings. */
    public int assetCookie;

其中的d是資源id,framework中的資源id是預(yù)先指定好的聂示,app的編譯時(shí)動(dòng)態(tài)確定域携。
frameworks/base/core/res/res/values/public.xml

 <public type="attr" name="background" id="0x7f0302a9" />

其中的0x7f0302a9就是指background,報(bào)錯(cuò)的原因就是background最終沒(méi)有確認(rèn)成一個(gè)確定的值鱼喉。
出現(xiàn)這個(gè)原因主要是因?yàn)橐昧薗mui的ui庫(kù)秀鞭,但是activity的theme沒(méi)有繼承QMUI.Compat.NoActionBar,所以導(dǎo)致設(shè)置背景的時(shí)候找不到對(duì)應(yīng)的資源出現(xiàn)的這個(gè)問(wèn)題扛禽。繞了很大一圈锋边,這里記錄一下問(wèn)題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末编曼,一起剝皮案震驚了整個(gè)濱河市豆巨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掐场,老刑警劉巖往扔,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贩猎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瓤球,警方通過(guò)查閱死者的電腦和手機(jī)融欧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卦羡,“玉大人噪馏,你說(shuō)我怎么就攤上這事÷潭” “怎么了欠肾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拟赊。 經(jīng)常有香客問(wèn)我刺桃,道長(zhǎng),這世上最難降的妖魔是什么吸祟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任瑟慈,我火速辦了婚禮,結(jié)果婚禮上屋匕,老公的妹妹穿的比我還像新娘葛碧。我一直安慰自己,他們只是感情好过吻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布进泼。 她就那樣靜靜地躺著,像睡著了一般纤虽。 火紅的嫁衣襯著肌膚如雪乳绕。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天逼纸,我揣著相機(jī)與錄音洋措,去河邊找鬼。 笑死杰刽,一個(gè)胖子當(dāng)著我的面吹牛呻纹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播专缠,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼淑仆!你這毒婦竟也來(lái)了涝婉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蔗怠,失蹤者是張志新(化名)和其女友劉穎墩弯,沒(méi)想到半個(gè)月后吩跋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渔工,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年锌钮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片引矩。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梁丘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旺韭,到底是詐尸還是另有隱情氛谜,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布区端,位于F島的核電站值漫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏织盼。R本人自食惡果不足惜杨何,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沥邻。 院中可真熱鬧危虱,春花似錦、人聲如沸谋国。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芦瘾。三九已至捌蚊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間近弟,已是汗流浹背缅糟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祷愉,地道東北人窗宦。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像二鳄,于是被迫代替她去往敵國(guó)和親赴涵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348