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?
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.
Assurez-vous d'avoir téléchargé la dernière version de extras
ainsi que le Android 5.0 SDK
via le SDK-Manager.
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.
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:
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'.
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.
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
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
Ensuite, reconstruisez simplement le projet (Build -> Rebuild Project) et vous êtes prêt à partir.
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.
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!
`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 "
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.
J'ai rencontré ce problème avec play-services: 5.0.89. Mise à niveau vers 6.1.11 problème résolu.
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.+'
}
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:
Le fichier jar est entré dans le dossier Dépendances Android et cette erreur a été corrigée.
La mise à niveau vers le dernier plugin Gradle résout mon problème:
classpath 'com.Android.tools.build:gradle:0.13.+'
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.
Assurez-vous de nettoyer votre projet dans Android studio (ou Eclipse),
Cela devrait résoudre vos problèmes
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
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: /)
Supprimez maintenant l'application compat et votre projet.
Dans Eclipse: Fichier> Importer> Android projet existant> Suivant> Parcourir (dossier dans lequel vous avez votre ADT)/sdk/extras/Android/v7/appcompat> Importer> Terminer.
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
Faites un clic droit sur libs/folder> Buil Path> Configurer le chemin de construction et vérifiez ces deux fichiers JARS> OK
Sur la barre Eclipse supérieure> Projet> Nettoyer
Importez votre projet> Fichier> Importer> Parcourir votre projet> Terminer
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
Faites un clic droit sur le fichier de projet> Propriétés> Android> Ajouter> Android-support-v7-appcompat
Sur la barre Eclipse supérieure> Projet> Nettoyer
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 :)
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!