web-dev-qa-db-fra.com

Aucune ressource trouvée qui correspond au nom donné attr "colorPrimary"

J'ai de la difficulté à compiler mon application Android dans Xamarin Studio. L'erreur qui se présente est la suivante:

Aucune ressource trouvée qui correspond au nom donné attr "colorPrimary"

Qui fait référence à mon 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>

Le conseil habituel trouvé en ligne est de définir la version du SDK sur 21 ou plus. Mais j'ai déjà essayé ça:

  • Définissez minSdkVersion sur 21 dans le manifeste
  • Définissez targetSdkVersion sur 21 dans le manifeste
  • Définir la structure du taget sur Android 5.0 dans les paramètres du projet
  • Projet nettoyé et reconstruit

L'erreur est toujours là: - ( Existe-t-il d'autres paramètres nécessaires pour que cela fonctionne?

10
Boris

Vous devez suivre la convention directement à partir de la documentation 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>

Ce qui vous manque ici, c'est le préfixe d'espace de nom Android: de l'élément colorPrimary. De ce fait, l'attribut respectif ne peut pas être trouvé car il n'est pas défini dans la portée.

Sinon, vous devrez supprimer le préfixe Android: du thème.

parent="@Android:style/Theme.Material.Light.DarkActionBar"
5
Jon Douglas

Dans mon cas, les couleurs utilisées dans styles.xml n'étaient pas définies. Donc, assurez-vous que vous avez défini toutes les couleurs ainsi que les noms correctement.

0
Kaveri

Dans mon cas, il s'agissait d'entrées incorrectes dans le SDK provenant d'un partenaire externe que j'utilise:

  • ils avaient des informations de style dans le fichier value.xml du SDK
  • ils ont également une partie thème Android dans leur fichier AndroidManifest.xml

qui ne sont évidemment pas nécessaires lorsque vous créez un SDK (et non une application, où vous devez configurer les thèmes et les couleurs ...)

0
Markus Rossler