找不到与给定名称attr“colorPrimary”匹配的资源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找不到与给定名称attr“colorPrimary”匹配的资源相关的知识,希望对你有一定的参考价值。
我很难在Xamarin Studio中编译我的android应用程序。出现的错误如下:
找不到与给定名称attr“colorPrimary”匹配的资源
哪个引用我的styles.xml:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<!--item name="colorPrimaryDark">@color/colorPrimaryDark</item-->
<!--item name="colorAccent">@color/colorAccent</item-->
</style>
</resources>
在线发现的通常建议是将SDK版本设置为21或更高版本。但我已经尝试过了:
- 在清单中将minSdkVersion设置为21
- 在清单中将targetSdkVersion设置为21
- 在项目设置中将目标框架设置为Android 5.0
- 清理和重建项目
错误仍然存在:-(是否还需要其他设置才能使其工作?
这对我的项目有用。
在res/values-v21/styles.xml
,
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="AppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="android:colorPrimary">@color/primaryColor</item>
</style>
</resources>
在res/values/styles.xml
,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primaryColor</item>
</style>
</resources>
您应该直接从Material Design文档(https://developer.android.com/training/material/theme.html#ColorPalette)遵循约定:
<resources>
<!-- inherit from the material theme -->
<style name="AppTheme" parent="android:Theme.Material">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@color/primary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@color/accent</item>
</style>
</resources>
你在这里缺少的是android:
项目的colorPrimary
名称空间前缀。因此,它无法找到相应的属性,因为它未在范围中定义。
否则,您需要从主题中删除android:
前缀
parent="@android:style/Theme.Material.Light.DarkActionBar"
在我的例子中,styles.xml中使用的颜色未定义。因此,请确保您已正确定义了所有颜色和名称。
在我的情况下,我使用的外部合作伙伴SDK中的错误条目:
- 他们在SDK value.xml文件中有样式信息
- 他们还在AndroidManifest.xml中加入了android:theme部分
当你构建一个SDK(而不是一个app,你需要配置关于主题和颜色的......)时,两者显然都是不必要的。
你正在做的是声明你的风格的colorPrimary是你风格的colorPrimary ......什么是没有意义的。
你应该声明颜色是:
<style name="_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">#6c0e54</item>
如果要定义其他颜色并在样式上调用它,请创建一个xml文件,如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="apptheme_color1">#9D3F86</color>
<color name="apptheme_color2">#84226C</color>
</resources>
然后你可以这样做:
<style name="_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color1</item>
在resvaluescolors.xml
中添加此代码
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
现在同步您的项目。
以上是关于找不到与给定名称attr“colorPrimary”匹配的资源的主要内容,如果未能解决你的问题,请参考以下文章
appcompat-v7:21.0.0':找不到与给定名称匹配的资源:attr 'android:actionModeShareDrawable'
离子 - 错误:找不到与给定名称匹配的资源(在“dialogCornerRadius”处,值为“?android:attr/dialogCornerRadius”)
找不到与给定名称匹配的资源 (@style/AppTheme)