64 votes

"Aucun identifiant de ressource trouvé pour l'attribut 'showAsAction' dans le paquet 'Android'".

J'essaie de mettre à jour mon application Android pour qu'elle soit mieux adaptée aux tablettes fonctionnant sous Honeycomb. À ce titre, je cible la version 11 du SDK (ma minSdkVersion = 4). Cela ajoute le thème Honeycomb à mon application, ce qui lui donne une meilleure apparence. Cependant, je n'ai aucun moyen d'accéder à mes options de menu. J'essaie donc d'ajouter les éléments de mon menu en tant qu'éléments de la barre d'action avec ce qui suit dans le fichier de mon dossier /res/menu/ :

android:showAsAction="ifRoom|withText"

Cependant, j'obtiens l'erreur suivante :

Aucun identifiant de ressource trouvé pour l'attribut 'showAsAction' dans le paquet 'Android'.

J'ai essayé de modifier mon numéro de minSdkVersion à 11 pour voir si cela fonctionnerait, mais sans succès. Avez-vous des idées ? Merci !

0 votes

J'ai immédiatement pensé que c'était parce que showAsAction a été ajouté au niveau 11 de l'API, mais il semble que vous en ayez tenu compte.

0 votes

C'est ce que j'avais pensé, c'est pourquoi je l'ai ajouté. Mais, comme je développe dans Eclipse, j'ai dû changer toute la cible de mon projet en #11, comme Jason l'a suggéré ci-dessous.

0 votes

J'ai eu cette erreur lorsque j'ai changé la cible de mon projet en version 8. Il s'avère que showAsAction était mentionnée dans les fichiers XML lorsque la cible était plus élevée, j'ai donc simplement supprimé cette ligne des XML qui donnaient l'erreur et cela a résolu le problème.

65voto

Jason Hanley Points 2260

Si vous construisez avec Eclipse, assurez-vous que la cible de construction de votre projet est également définie sur Honeycomb.

0 votes

C'était ça. Merci. J'apprécie beaucoup. Savez-vous pourquoi rien ne s'affiche dans ma barre d'action, même avec ce code en place ?

0 votes

Il devrait s'afficher. Si ce n'est pas le cas, créez une autre question avec votre code.

4 votes

Vous aurez également besoin de faire un nettoyage après avoir changé la cible de construction.

34voto

sau1001 Points 223

Supprimer android:showAsAction="never" de res/menu de chaque fichier xml.

4 votes

Pourquoi cela serait-il nécessaire ? Android:showAsAction="never" peut parfois s'avérer utile.

2 votes

Bien que ce ne soit pas l'action souhaitée, c'était la meilleure solution temporaire. J'ai importé le fichier Android-support-v7-appcompat.jar, mais il ne se chargeait pas correctement jusqu'à ce que je supprime les lignes Android:showAsAction="never" de mes XML, que je supprime le dossier gen, que je nettoie le projet et que je le reconstruise. Une fois que j'ai eu une construction sans erreurs, j'ai pu ajouter Android:showAsAction="never" à nouveau dans mes XML sans erreurs.

22voto

kumar kundan Points 1353

Toutes les solutions ci-dessus peuvent ne pas fonctionner dans Studio Android .si vous utilisez Android STUDIO ...... utiliser ce correctif

ajouter

xmlns:compat="http://schemas.android.com/tools"

dans la balise menu au lieu de

xmlns:compat="http://schemas.android.com/apk/res-auto"

sur menu étiquette.

16voto

user3192555 Points 119

Ajouter " Android-support-v7-appcompat.jar " vers les bibliothèques privées d'Android

15voto

Fox in socks Points 2239

Ajouter compat compilation de la bibliothèque dans le fichier build.gradle :

compile 'com.android.support:appcompat-v7:19.+'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X