无效的int:“res / color / abc_primary_text_material_light.xml”

时间:2016-12-09 15:57:05

标签: java android

在ImageView上使用以下XML属性

android:tint="?android:attr/textColorPrimary"

应用程序在使用此堆栈跟踪的某些设备上崩溃:

Caused by: java.lang.NumberFormatException: Invalid int: "res/color/abc_primary_text_material_light.xml"
   at java.lang.Integer.invalidInt(Integer.java:138)
   at java.lang.Integer.parse(Integer.java:375)
   at java.lang.Integer.parseInt(Integer.java:366)
   at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
   at android.content.res.TypedArray.getInt(TypedArray.java:254)
   at android.widget.ImageView.<init>(ImageView.java:146)
   at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:60)
at android.support.v7.wid

为什么会这样?有解决方案/解决方法吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试使用某些API级别无法使用的私有资源。

res/values/colors.xml中定义颜色是标准的,如下例所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textColorPrimary">#212121</color>

    <!-- other colors -->
</resources>

然后您可以按如下方式引用该颜色:

android:tint="@color/textColorPrimary"