android.view.InflateException:二进制XML文件行#158:膨胀类按钮时出错

android.view.InflateException:二进制XML文件行#158:膨胀类按钮时出错,android,xml,layout,Android,Xml,Layout,我想为我的按钮使用color.xml文件,但它显示了此错误和应用程序崩溃。它说,它找不到color.xml文件 Caused by: android.content.res.Resources$NotFoundException: File res/color/color.xml from drawable resource ID #0x7f0e00dd at android.content.res.Resources.loadDrawableForCookie(Resources.java

我想为我的按钮使用
color.xml
文件,但它显示了此错误和应用程序崩溃。它说,它找不到
color.xml
文件

Caused by: android.content.res.Resources$NotFoundException: File res/color/color.xml from drawable resource ID #0x7f0e00dd
  at android.content.res.Resources.loadDrawableForCookie(Resources.java:3783)
  at android.content.res.Resources.loadDrawable(Resources.java:3651)
  at android.content.res.TypedArray.getDrawable(TypedArray.java:762)
  at android.view.View.<init>(View.java:3983)
  at android.widget.TextView.<init>(TextView.java:1021)
  at android.widget.Button.<init>(Button.java:115)
  at android.widget.Button.<init>(Button.java:108)
  at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)
  at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:5
原因:android.content.res.Resources$NotFoundException:文件res/color/color.xml来自可绘制资源ID#0x7f0e00dd
位于android.content.res.Resources.loadDrawableForCookie(Resources.java:3783)
位于android.content.res.Resources.loadDrawable(Resources.java:3651)
位于android.content.res.TypedArray.getDrawable(TypedArray.java:762)
在android.view.view.(view.java:3983)
位于android.widget.TextView。(TextView.java:1021)
在android.widget.Button.(Button.java:115)
在android.widget.Button.(Button.java:108)
位于android.support.v7.widget.AppCompatButton.(AppCompatButton.java:62)
在android.support.v7.widget.AppCompatButton.(AppCompatButton.java:5
这是我的按钮xml:

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@color/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="@color/grey" />
    <item android:color="@color/myRedColor"/>
</selector>

这是我的颜色。xml:

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@color/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="@color/grey" />
    <item android:color="@color/myRedColor"/>
</selector>

在Drawable文件夹中创建color.xml文件

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

在按钮中使用color.xml作为背景

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    // here
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>

在Drawable文件夹中创建color.xml文件

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

在按钮中使用color.xml作为背景

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    // here
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>

将color.xml文件粘贴到drawble文件夹中,并将color.xml作为背景添加到按钮中,如下所示

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>

将color.xml文件粘贴到drawble文件夹中,并将color.xml作为背景添加到按钮中,如下所示

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>


android:background
属性需要一个
drawable
资源。您只需将
color.xml
文件移动到
drawable
文件夹。

android:background
属性需要一个
drawable
资源。您只需将
color.xml
文件移动到文件夹即可de>drawable文件夹。

color.xml文件放入
drawable

drawable\color.xml文件中进行更改

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@color/grey" />
    <item android:drawable="@color/myRedColor"/>
</selector>

按钮xml

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>

将您的color.xml文件放入
可绘制文件中

drawable\color.xml文件中进行更改

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@color/grey" />
    <item android:drawable="@color/myRedColor"/>
</selector>

按钮xml

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>

最后,我修复了错误。我看起来很奇怪,但它能正常工作。首先,将
color.xml
移动到可绘制文件夹。然后更新
color.xml
,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false">
        <color android:color="@color/grey"/>
    </item>
    <item>
        <color android:color="@color/myRedColor"/>
    </item>
</selector>

最后,我修复了错误。我看起来很奇怪,但它能正常工作。首先,将
color.xml
移动到可绘制文件夹。然后更新
color.xml
,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false">
        <color android:color="@color/grey"/>
    </item>
    <item>
        <color android:color="@color/myRedColor"/>
    </item>
</selector>


在drawable中添加选择器文件什么是
@color/buy
?只需颜色代码还是xml文件?你的意思是将color.xml文件添加到drawable文件夹吗?我尝试了一下,但仍然得到相同的错误。@K.Sopheak我看不到color/buy在哪里声明。你的color.xml文件不包含它。@vrundpurohit我编辑了我的帖子。实际上,它是@color/color.It是color.xml文件。在drawable中添加选择器文件什么是
@color/buy
?简单地说是色码还是xml文件?你的意思是将color.xml文件添加到drawable文件夹吗?我尝试了一下,但仍然得到相同的错误。@K.Sopheak我看不到color/buy在哪里声明。你的color.xml文件不包含它。@vrundpurohit我编辑了我的帖子。实际上,它是我写的s@color/color。这是color.xml文件。@K.Sopheak请先更新您的代码。我仍然看到单词“buy”@K.Sopheak我仍然看到“/color/color.xml”。您需要将color.xml文件移动到文件夹drawable。对于您的按钮,请使用以下行:
android:background=“@drawable/color”
@K.Sopheak请先更新您的代码。我仍然看到“buy”@K.Sopheak我仍然看到“/color/color.xml”。您需要将color.xml文件移动到drawable文件夹。对于您的按钮,请使用以下行:
android:background=“@drawable/color”