Mic*_*hal 6 android android-support-library
我经历了一个奇怪的效果,处理具有支持lib属性的形状drawables.我有以下代码,在通货膨胀期间每次都会崩溃.
<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"/>
Run Code Online (Sandbox Code Playgroud)
注意我使用?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"/>
Run Code Online (Sandbox Code Playgroud)
没有任何崩溃,它工作正常.问题仅出在运行Android版本低于5.0的设备上.我正在使用以下支持lib
compile 'com.android.support:support-v4:22.2.1'
Run Code Online (Sandbox Code Playgroud)
有人发现了这种情况发生的原因吗?这是支持库中的错误吗?
<solid android:color="?attr/colorPrimary"/>指向Android代码中的私有颜色(不是公开的),也许它在某些API中不存在。
虽然<solid android:color="@color/primary"/>将指向项目中的颜色,但也许您primary仅在文件夹 value-v21 中拥有颜色名称,因此它仅在低于 5.0 的版本中崩溃
,我认为您应该尝试使用此:
<solid android:color="@android:attr/colorPrimary"/>以确保该属性存在。
希望这可以帮助。