我使用的是Android Studio,我得到了一个" Resources $ NotFoundException"仅在Android前Lollipop上被抛出。这是:
Caused by: android.content.res.Resources$NotFoundException: Resource is not a ColorStateList (color or path): TypedValue{t=0x2/d=0x7f0100b7 a=2}
和' 0x7f0100b7 '在 R 文件中引用' colorAccent '。 我相信这个问题与appcompat支持库有关。 我已将其添加到' build.gradle'文件:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile "com.google.android.gms:play-services-maps:8.4.0"
}
这是主题:
<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/bg_main</item>
<item name="colorPrimaryDark">@color/bg_main_darker</item>
<item name="colorAccent">@color/bg_dark</item>
</style>
这些颜色存在于&#39; color.xml&#39;。
中有什么想法吗? 非常感谢。
答案 0 :(得分:2)
您正在使用特定于Material Design的属性,但在系统版本上运行,即先前的材质。
注意:如果您的应用使用了素材主题但未提供 以这种方式替代主题,您的应用程序将无法在版本上运行 Android早于5.0。
您必须提供一个替代主题,例如描述here,以运行早于5的版本。
E.g。在res/values/colors.xml
中提供:
<!-- extend one of the Theme.AppCompat themes -->
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- customize the color palette -->
<item name="colorPrimary">@color/material_blue_500</item>
<item name="colorPrimaryDark">@color/material_blue_700</item>
<item name="colorAccent">@color/material_green_A200</item>
</style>
在您的问题文本中,您正在撰写color.xml
而不是colors.xml,也可能是您问题的一部分:)