找不到资源找不到selector.xml的异常

时间:2014-03-03 02:07:08

标签: android

我遇到问题,我收到此错误...

  

03-02 19:59:03.539:E / AndroidRuntime(11177):   java.lang.RuntimeException:无法启动活动   ComponentInfo {com.comp4020.kitchenaid / com.kitchenaid.MainActivity}:   android.content.res.Resources $ NotFoundException:File   res / drawable / main_button.xml来自可绘制资源ID#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>

1 个答案:

答案 0 :(得分:-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:color 或者在你的情况下 android:background 而不是 android:drawable ,改为前者解决了这个问题。