web-dev-qa-db-fra.com

appcompat-v7: 21.0.0 ': Aucune ressource trouvée qui correspond au nom donné: attr' Android: actionModeShareDrawable '

Lorsque j'essaie d'utiliser la dernière bibliothèque de support appcompat-v7 dans mon projet, le message d'erreur suivant s'affiche:

/Users/greg/dev/mobile/Android_project/app/build/intermediates/exploded-aar/com.Android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.

Comment puis-je réparer ça?

373
loeschg

Bien que la réponse de loeschg soit tout à fait correcte, je voudrais juste élaborer et donner une solution pour tous les IDE (Eclipse, IntellJ et Android Studio) même si les erreurs se différencient légèrement.


Pré-requis

Assurez-vous d'avoir téléchargé la dernière version de extras ainsi que le Android 5.0 SDK via le SDK-Manager.

Picture of the SDK Manager


Studio Android

Ouvrez le fichier build.gradle de votre app-module et modifiez votre compileSdkVersion en 21. Il n’est pas nécessaire de changer le targetSdkVersion SDK-Version en 21, mais nous vous le recommandons car vous devriez toujours - ciblez la dernière version Android Build-Version .
En fin de compte, votre fichier de classement ressemblera à ceci:

Android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Assurez-vous de synchroniser votre projet par la suite.

Android Studio Gradle Sync reminder


Éclipse

Lorsque vous utilisez v7-appcompat dans Eclipse, vous devez l’utiliser en tant que projet de bibliothèque. Il ne suffit pas de copier le fichier * .jar dans votre dossier /libs. Veuillez lire this (click) tutoriel pas à pas sur developer.Android.com afin de savoir comment importer correctement le projet.

Dès que le projet est importé, vous vous rendrez compte que certains dossiers du dossier /res sont soulignés en rouge à cause d’erreurs telles que:

Errors in Eclipse

error: Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'Android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'Android:actionModeShareDrawable'.

Solution

La seule chose à faire est d'ouvrir le fichier project.properties du Android-support-v7-appcompat et de changer la cible de target=Android-19 à target=Android-21.
Ensuite, faites un Project --> Clean... pour que les modifications prennent effet.


IntelliJ IDEA (n'utilise pas Gradle)

Comme avec Eclipse, il ne suffit pas d’utiliser uniquement le Android-support-v7-appcompat.jar; vous devez importer la appcompat en tant que module. En savoir plus à ce sujet sur ce StackO-Post (clic) .
( Remarque: Si vous êtes seulement en utilisant le .jar vous obtiendrez NoClassDefFoundErrors au runtime )

Lorsque vous essayez de construire le projet, vous rencontrez des problèmes dans les dossiers res/values-v**. Votre fenêtre de message dira quelque chose comme ce qui suit:

Error:Android-apt-compiler: [appcompat]  resource found that matches the given name: attr 'Android:colorPrimary'.
Error:(75, -1) Android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\Android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'Android:Widget.Material.ActionButton'.
// and so on

Solution

Cliquez avec le bouton droit sur appcompat module -> Ouvrir les paramètres du module (F4) -> [Onglet Dépendance] Sélectionnez Android API 21 Platform depuis le menu déroulant -> Appliquer

Select API 21 Platform

Ensuite, reconstruisez simplement le projet (Build -> Rebuild Project) et vous êtes prêt à partir.

596
reVerse

C'est probablement parce que vous n'avez pas défini votre compileSdkVersion sur 21 dans votre fichier build.gradle. Vous voudrez probablement aussi changer votre targetSdkVersion en 21.

Android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Pour cela, vous devez d'abord avoir téléchargé les dernières mises à jour du SDK.

Android Studio SDK Manager

Une fois que vous avez téléchargé toutes les mises à jour (n'oubliez pas de mettre à jour également la bibliothèque/référentiel de support Android!) Et mis à jour votre compileSdkVersion, synchronisez à nouveau votre projet Gradle. .

Edit: Pour les utilisateurs d'Eclipse ou d'IntelliJ général

Voir la réponse de reVerse. Il a une promenade très complète à travers!

123
loeschg

`Suivez les étapes ci-dessous:

ça marche pour moi. Pour résoudre ce problème,

1.Cliquez à droite sur la bibliothèque appcompat_v7 et sélectionnez Propriétés.

2.Maintenant, cliquez sur Android Option, Définissez le chemin de génération du projet sur Android 5.0 (API niveau 21), puis cliquez sur Appliquer les modifications.

3.Maintenant, accédez au fichier project.properties de la bibliothèque appcompat_v7,

4. Définissez la cible du projet comme suit: target = Android-21

5.Now Clean + Construire la bibliothèque appcompat_v7 et vos projets "

22
madhu sudhan

Si vous ne souhaitez pas utiliser l'API 21 comme API cible et que vous ne souhaitez donc pas utiliser le thème Matériau, vous devez utiliser une version plus ancienne appartenant à l'API 19>

compile "com.Android.support:appcompat-v7:19.0.+"

Cela aide également à résoudre votre problème, cela ne dépend que de ce que vous voulez atteindre.

12
vandus

J'ai rencontré ce problème avec play-services: 5.0.89. Mise à niveau vers 6.1.11 problème résolu.

10
pepyakin

Dans Android Studio, j'essayais de définir les paramètres compileSdkVersion et targetSdkVersion sur 19.

Ma solution a été de remplacer au bas de build.gradle, de ceci:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:21.0.3'
}

Vers l'ancienne version de la bibliothèque appcompat:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:19.+'
}
8
Gianfranco P.

J'avais ajouté un autre projet à mon espace de travail et j'essayais de référencer une activité à partir de celui-ci dans le fichier manifeste, et j'obtenais cette erreur. Le problème est que je ne faisais pas correctement référence à la bibliothèque. Voici comment j'ai résolu le problème:

  • Clic droit sur le projet
  • Sélectionnez Propriétés
  • Cliquez sur Android dans le menu de gauche
  • Cliquez sur Ajouter
  • Veuillez sélectionner un projet de bibliothèque

Le fichier jar est entré dans le dossier Dépendances Android et cette erreur a été corrigée.

3
live-love

La mise à niveau vers le dernier plugin Gradle résout mon problème:

classpath 'com.Android.tools.build:gradle:0.13.+'
2
avianey

Après avoir créé un deuxième projet dans l’espace de travail d’Eclipse, j’ai eu ce problème. Je crois que c’est parce que je l’ai créé avec une version différente du SDK, ce qui annote la bibliothèque Android-support-v7-appcompat.

J'ai essayé de tout nettoyer mais en vain. Finalement, la suggestion ci-dessus d'éditer project.properties et de modifier target = Android-21 et de définir mon projet sur Android 5.0, a corrigé le problème.

2
formica

Assurez-vous de nettoyer votre projet dans Android studio (ou Eclipse),

Cela devrait résoudre vos problèmes

2
Brendon Sled

J'ai eu la même erreur lorsque j'ai changé la version du SDK Compile d'API: 21 à API: 16. Le problème était, appcompat version. Si vous devez utiliser une ancienne version de Android API, vous devez également modifier cette version de appcompat. Dans mon cas (pour API: 16), je devais utiliser appcompat-v7: 19. +.

Donc, je remplace les dépendances dans build.gradle comme suit,

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:19.+'
}

Et assurez-vous d’avoir des versions plus anciennes des versions d’appcompat sur votre SDK enter image description here

2
mili

Ce que je recommande est: (Cela fonctionne après plusieurs jours avec des erreurs)

-Assurez-vous d'avoir téléchargé:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-Redowload l'ADT

-Faire une copie de sécurité de votre projet.

-Vous devez avoir l'ADT, l'espace de travail et le projet que nous allons importer sur le même disque (par exemple C: /)

  1. Supprimez maintenant l'application compat et votre projet.

  2. Dans Eclipse: Fichier> Importer> Android projet existant> Suivant> Parcourir (dossier dans lequel vous avez votre ADT)/sdk/extras/Android/v7/appcompat> Importer> Terminer.

  3. Maintenant, dans l'explorateur de packages Eclipse: Android-support-v7-appcompat/libs/Make sur les deux fichiers JARS: clic droit> Build Path> Ajouter au chemin de construction

  4. Faites un clic droit sur libs/folder> Buil Path> Configurer le chemin de construction et vérifiez ces deux fichiers JARS> OK

  5. Sur la barre Eclipse supérieure> Projet> Nettoyer

  6. Importez votre projet> Fichier> Importer> Parcourir votre projet> Terminer

  7. Maintenant, faites un clic droit sur le fichier de projet et Android-support-v7-appcompat> Propriétés> Android> et sélectionnez la dernière API qui apparaît> OK

  8. Faites un clic droit sur le fichier de projet> Propriétés> Android> Ajouter> Android-support-v7-appcompat

  9. Sur la barre Eclipse supérieure> Projet> Nettoyer

2
juldeh

J'étais à jour avec tout et j'ai toujours cette erreur, je ne sais pas pourquoi, mais je pense que l'image a été corrompue de manière étrange et après avoir remplacé l'image, je me suis débarrassé de l'erreur. Ça vaut peut-être la peine d'essayer avec une autre image :)

2
DoruChidean

Mon problème était que mon projet était référencé par d'autres bibliothèques et qu'une autre version de appcompat était référencée. Voici ce que j'ai fait pour résoudre le problème:

(Vous devez sauvegarder votre projet avant de le faire)

1) J'ai supprimé tous les dossiers de mise en page appcompat (ex:/res/layout-v11).

2) Résolu les problèmes qui en découlaient, généralement une erreur dans menu.xml

3) Retour au projet principal et ajouter la bibliothèque appcompat, nettoyer et tout fonctionne!

1
tricknology