2014-03-03 81 views
4

我有在那裏我得到這個錯誤的問題...資源未發現異常的selector.xml

03-02 19:59:03.539:E/AndroidRuntime(11177): 的Java。 lang.RuntimeException:無法啓動活動 ComponentInfo {com.comp4020.kitchenaid/com.kitchenaid.MainActivity}: android.content.res.Resources $ NotFoundException:文件 來自可繪製資源ID的res/drawable/main_button.xml#0x7f020003

我不知道爲什麼會發生這種情況。該資源絕對存在,它的命名正確無誤。我能想到的唯一想法是我在程序中添加了字符,但沒有默認字符集,所以它詢問「更改爲UTF-8」,我說是的。

我如下分配這個資源......

ingButton.setBackgroundResource(R.drawable.main_button); 
nextButton.setBackgroundResource(R.drawable.main_button); 
prevButton.setBackgroundResource(R.drawable.main_button); 
timerButton.setBackgroundResource(R.drawable.main_button); 

我也嘗試清洗工程。我不知道發生了什麼。

編輯:這裏是繪製

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:state_pressed="true" 
     android:background="@drawable/gradient_pressed" 
     /> 
    <item android:background="@drawable/gradient"/> 

</selector> 

gradient.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <gradient android:startColor="@color/gradientDark" 
       android:centerColor="@color/gradientDark" 
       android:endColor="@color/gradientLight" 
       android:angle="90" /> 
</shape> 

gradient_pressed.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <gradient android:startColor="@color/highlightGradientDark" 
       android:centerColor="@color/highlightGradientDark" 
       android:endColor="@color/highlightGradientLight" 
       android:angle="90" /> 

</shape> 
+0

您是否嘗試過清潔和重建項目? – codeMagic

+0

你能否確認併發布你的main_button.xml文件 – Prakash

+0

只是想檢查一下這些drawable可能是不同的尺寸,其中有些不在那裏?即:你正在加載一些平板電腦的東西? – reidisaki

回答

-1

的Android新版本的解釋更多的細節一點點:

E/AndroidRuntime(5591): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML 
file line #4: <item> tag requires a 'drawable' attribute or child tag defining a drawable 

的問題是,選擇具有安卓顏色或在您的情況的android:背景中的每個項目,而不是機器人:可繪製,更改爲前者解決了這個問題。

+0

你是什麼意思改變爲前者?前者是什麼?非常模糊的解釋。 – ulusoyca

+0

@ulusoyca對不起,你的英文不好,前者是指「後者」,在句子中,意思是將android:background改爲android:drawable應該可以解決問題 – htafoya