我遇到问题,我收到此错误...
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>
答案 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 ,改为前者解决了这个问题。