找不到与给定名称attr“colorPrimary”匹配的资源

时间:2016-08-17 12:26:27

标签: android xamarin xamarin.android

我很难在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
  • 在项目设置中将taget框架设置为Android 5.0
  • 清理并重建项目

错误仍然存​​在:-( 是否需要其他设置才能使其正常工作?

7 个答案:

答案 0 :(得分:11)

这对我的项目有用。

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>

答案 1 :(得分:5)

您应该直接从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"

答案 2 :(得分:1)

就我而言,styles.xml中使用的颜色未定义。 因此,请确保您已正确定义了所有颜色和名称。

答案 3 :(得分:0)

就我而言,这是我使用的外部合作伙伴在SDK中输入的错误:

  • 他们在SDK value.xml文件中有样式信息
  • 它们还在其AndroidManifest.xml中包含了一个android:theme部分

在构建SDK(而不是在应用程序中需要配置主题和颜色的应用程序...)时,这显然都不是必需的

答案 4 :(得分:0)

人们将面临的主要问题是因为他们在定义颜色之前忘记添加android 和 您定义的颜色xml中不存在已定义的颜色

<item name="android:colorPrimary">#fff</item> <item name="android:colorPrimaryDark">#fff</item> <item name="android:colorAccent">#fff</item>

如果您这样使用@color/color_primary,则在这里我直接定义了颜色,那么上述color_primary必须存在于颜色文件中。

答案 5 :(得分:-2)

你正在做的是声明你的风格的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>

答案 6 :(得分:-2)

res\values\colors.xml

中添加此代码
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>

现在同步您的项目。