Android支持库v4:22+在attr / in drawables中崩溃前Lollipop

时间:2015-07-28 09:02:32

标签: android android-support-library

我遇到了一个奇怪的效果,它处理了具有支持lib属性的shape drawable。我有以下代码,在通货膨胀期间每次都会崩溃。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
<size android:width="26dp" android:height="26dp"/>
<solid android:color="?attr/colorPrimary"/>

注意我使用了?attr / colorPrimary作为颜色。如果我使用

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
<size android:width="26dp" android:height="26dp"/>
<solid android:color="@color/primary"/>

没有任何崩溃,工作正常。问题仅出在运行Android版本低于5.0的设备上。我正在使用以下支持lib

compile 'com.android.support:support-v4:22.2.1'

有人发现了这种情况发生的原因吗?这是支持库中的错误吗?

1 个答案:

答案 0 :(得分:2)

<solid android:color="?attr/colorPrimary"/>在Android代码中指向私有颜色(不公开),也许它在某些API中不存在。
虽然<solid android:color="@color/primary"/>将指向项目中的颜色,但您可能只在文件夹值-v21中使用颜色名称primary,因此它只会在5.0以下的版本中崩溃 我想你应该尝试使用这个: <solid android:color="@android:attr/colorPrimary"/>以确保该属性存在 希望这会有所帮助。