appcompat-v7: 21.0.0 ': Aucune ressource trouvée correspondant au nom donné: attr' android: actionModeShareDrawable '

376

Lorsque j'essaie d'utiliser la dernière bibliothèque de support appcompat-v7 dans mon projet, j'obtiens l'erreur suivante:

/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?

loeschg
la source
1
Je reçois ce problème dans Eclipse. J'ai eu plus de 100 erreurs car mes outils de construction de SDK n'ont pas été mis à jour vers la version 21. J'ai maintenant des erreurs différentes, alors ... allez y jeter un œil.
RED_
Aujourd'hui, j'ai désinstallé et réinstallé la bibliothèque de support Extras / Android (version 21.0.2) et je note que son project.properties pointe toujours de manière incorrecte vers target = android-19 qui est la racine du problème. Doit être 21, mais c'est un fichier généré - non modifiable à la main. Voir la réponse acceptée pour une solution de contournement.
JulianSymes
@RED_, Impossible de résoudre le symbole 'android: Theme.Material.Light' dans <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </style> dans valules-v21 dans le studio android
Pankaj Nimgade
@PankajNimgade Je ne comprends pas ... avez-vous besoin d'aide?
RED_
@RED_, oui j'ai désespérément besoin d'aide, sur mon ordinateur, je n'arrive pas à détecter quoi que ce soit pour Material Theme ou quoi que ce soit qui commence par android dans values-v21 \ styles, veuillez m'aider
Pankaj Nimgade

Réponses:

598

Bien que la réponse de loeschg soit absolument correcte, je veux juste en parler 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 extrasainsi que le Android 5.0 SDKvia le SDK-Manager.

Image du SDK Manager


Android Studio

Ouvrez le build.gradlefichier de votre module d'application et changez-le compileSdkVersionen 21. Il n'est fondamentalement pas nécessaire de changer la targetSdkVersionversion du SDK en 21, mais il est recommandé car vous devez toujours cibler la dernière version de build Android .
À la fin, votre fichier gradle ressemblera à ceci:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Assurez-vous de synchroniser votre projet par la suite.

Rappel Android Studio Gradle Sync


Éclipse

Lors de l'utilisation de v7-appcompatdans Eclipse, vous devez l'utiliser comme projet de bibliothèque. Il ne suffit pas de simplement copier le * .jar dans votre /libsdossier. Veuillez lire ce tutoriel étape par étape ( developer) 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 /resdossier sont soulignés en rouge en raison d'erreurs telles que les suivantes:

Erreurs dans 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 que vous avez à faire est d'ouvrir le project.propertiesfichier de android-support-v7-appcompatet de changer la cible de target=android-19à target=android-21.
Ensuite, faites juste un Project --> Clean...pour que les changements prennent effet.


IntelliJ IDEA (n'utilisant pas Gradle)

Similaire à Eclipse, il ne suffit pas d'utiliser uniquement le android-support-v7-appcompat.jar; vous devez importer le en appcompattant que module. En savoir plus à ce sujet sur ce StackO-Post (cliquez) .
( Remarque: Si vous utilisez uniquement le, .jarvous obtiendrez NoClassDefFoundErrorssur Runtime )

Lorsque vous essayez de créer le projet, vous rencontrerez des problèmes dans les res/values-v**dossiers. Votre fenêtre de message dira quelque chose comme ceci:

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 le appcompatmodule -> Ouvrir les paramètres du module (F4) -> [Onglet Dépendance] Sélectionnez Android API 21 Platform dans la liste déroulante -> Appliquer

Sélectionnez la plateforme API 21

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

inverser
la source
2
je suis également confronté au même problème dans éclipse après avoir changé la cible de target = android-19 en target = android-21 obtenant également une erreur sur le dossier de valeur mec
prabhakaran
1
Lorsque je change AppCompat en 5.0 dans eclipse, il ne se construit plus et le dossier .bin est vide.
Clive Jefferies
1
Génial, vraiment je me débattais depuis 2 jours, mais le changement de votre astuce Android-19 à 21 a fonctionné .. Merci Man
Mukesh Garg
1
En utilisant Eclipse, j'ai dû mettre à jour la cible du projet à 21 sur tous les projets qui utilisaient la bibliothèque appcompat, pas seulement sur le projet appcompat lui-même.
Bianca Daniciuc
1
Je suis actuellement aux prises avec les problèmes précédents mentionnés dans eclipse / android. C'est vraiment une charge de bollocks impénétrables peu fiables.
AndyUK
123

Cela est probablement dû au fait que vous n'avez pas défini compileSdkVersion21 sur votre fichier build.gradle. Vous voudrez probablement aussi changer votre targetSdkVersionà 21.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Cela nécessite que vous ayez téléchargé les dernières mises à jour du SDK pour commencer.

Gestionnaire de SDK Android Studio

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

Edit: pour Eclipse ou les utilisateurs généraux d'IntelliJ

Voir la réponse de reVerse. Il a une promenade très approfondie!

loeschg
la source
2
Ceci est la bonne réponse. La mise à niveau vers 21 nécessite cela, les nouvelles dépendances compatibles avec les applications et vous devez télécharger la version 12 des services de jeu.
sbaar
1
Et assurez-vous de courir JDK 7
Chad Bingham
1
Bien que toujours correct, voir la solution de @ reVerse. C'est plus complet :)
loeschg
n'a utilisé ni l'un des IDE ni Gradle ... est-ce similaire lorsque j'utilise Ant et le Bloc-notes?
Valen
22

`Suivez les étapes ci-dessous:

son travail pour moi. Pour résoudre ce problème,

Cliquez avec le bouton droit sur la bibliothèque appcompat_v7 et sélectionnez Propriétés

2.Maintenant, cliquez sur l'option Android, définissez le chemin de génération du projet comme Android 5.0 (API niveau 21) Appliquez les modifications.

3.Allez maintenant dans le fichier project.properties sous la bibliothèque appcompat_v7,

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

5.Now Clean + Build bibliothèque appcompat_v7 et vos projets`

madhu527
la source
1
J'ai utilisé votre chemin et défini la cible android-21 dans le projet et la bibliothèque, puis nettoyé les deux et fait..merci.
Md Mohsin
1
où puis-je trouver la bibliothèque appcompat_v7?
SleepNot
2
vous pouvez trouver la bibliothèque appcompat_v7 dans: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> support -> v7
madhu527
Cette réponse en combinaison avec la réponse de loeschg ci-dessus a résolu ce problème dans Eclipse.
Michael Todd
12

Dans le cas où vous ne souhaitez pas utiliser l'API 21 comme API cible et que vous ne souhaitez donc pas utiliser le thème de matériau, vous devez utiliser une révision 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 réaliser.

vandus
la source
Je suis d'accord avec toi. Après tout, tout le monde ne prévoit pas de viser SDK à 21 ans.
peacepassion
10

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

pépyakine
la source
8

Dans Android Studio, j'essayais de définir le compileSdkVersionet targetSdkVersionle 19.

Ma solution a été de remplacer au bas de build.gradle, à partir 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.+'
}
Gianfranco P.
la source
J'utilisais une dernière version d'Appcompact mais maintenant je veux passer à la version précédente mais je reçois cette erreur dans le dossier Exploded-Arr
Antwan
3

J'avais ajouté un autre projet à mon espace de travail et j'essayais d'en référencer une activité dans le fichier manifeste, et j'obtenais cette erreur. Le problème est que je référençais la bibliothèque de manière incorrecte. 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 pot est entré dans le dossier Android Dependencies et cette erreur a été corrigée.

l'amour en direct
la source
J'ai exécuté votre séquence. Puis il y a eu un «décalage de pot! Corrigez vos dépendances »dans la console Android, car les fichiers jars dans les bibliothèques / et les fichiers dans les projets de bibliothèque de services dépendants appcompat et google play ne correspondaient pas (présentaient une incompatibilité SHA-1 et la longueur du fichier jar). Luttant encore plus loin, je considère que c'est un succès.
Eugene Gr. Philippov
2

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

Cela devrait résoudre vos problèmes

Brendon Sled
la source
2
Le nettoyage de votre projet dans ce cas ne fonctionne pas, surtout si vous venez de télécharger un nouveau SDK Android, une bibliothèque compatible avec les applications, etc., car les erreurs ne se nettoieront pas comme par magie sans trouver les liens manquants vers d'autres bibliothèques et / ou ressources Android. La réponse de ReVerse est correcte et la plus complète pour ceux qui ne savent pas résoudre eux-mêmes les problèmes avec le dernier téléchargement d'API Android niveau 21.
ChuongPham
2

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

classpath 'com.android.tools.build:gradle:0.13.+'
avianey
la source
La version 0.14.0 a été publiée il n'y a pas si longtemps
loeschg
oui, j'utilisais toujours 0.12 ... peut-être que cela peut aider quelqu'un d'autre à passer à 0.13 ou 0.14
avianey
2

Après avoir créé un deuxième projet dans l'espace de travail dans Eclipse, j'ai eu ce problème. Je pense que c'est parce que je l'ai créé avec une version différente du SDK et que cela a écrasé la bibliothèque android-support-v7-appcompat.

J'ai essayé de tout nettoyer mais en vain. En fin de compte, la suggestion ci-dessus pour modifier project.properties et changer target = android-21 et définir mon projet sur Android 5.0, l'a corrigé.

formica
la source
2

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

-Assurez-vous que vous avez téléchargé:

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

-Recharger l'ADT

-Faites 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. Maintenant, supprimez l'application compatible et votre projet.

  2. Dans eclipse: Fichier> Importer> Projet existant Android> Suivant> Parcourir (le dossier où 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 JARS: clic droit> Chemin de construction> Ajouter au chemin de construction

  4. Faites un clic droit sur les bibliothèques / dossiers> Buil Path> Configure Build Path et vérifiez ces deux JARS> OK

  5. Sur la barre d'éclipse supérieure> Projet> Nettoyer

  6. Importez votre projet> Fichier> Importer> Parcourez 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 d'éclipse supérieure> Projet> Nettoyer

juldeh
la source
2

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

Je remplace donc 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 que vous disposez d'anciennes versions des versions compatibles avec les applications sur votre SDK entrez la description de l'image ici

mili
la source
2

J'étais à jour avec tout et j'ai toujours eu cette erreur, je ne sais pas pourquoi mais je pense que l'image a été corrompue d'une manière étrange et après avoir remplacé l'image, je me suis débarrassée de l'erreur. Cela pourrait valoir la peine d'essayer avec une image différente :)

DoruChidean
la source
1

Mon problème était que j'avais d'autres bibliothèques référencées par mon projet et ces bibliothèques avaient une autre version d'Appcompat 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 compatibles avec l'application (ex: / res / layout-v11).

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

3) Revenez au projet principal et ajoutez la bibliothèque compatible avec l'application, nettoyez et tout fonctionne!

tricknology
la source