145 votes

erreur : Aucun identifiant de ressource trouvé pour l'attribut 'adSize' dans le paquet 'com.google.example' main.xml

Lorsque j'ai suivi les instructions pour ajouter une publicité dans mon application par xml, j'ai obtenu les erreurs suivantes :

Description Resource Path Location Type
error: No resource identifier found for attribute 'adSize' in package 'com.google.example'  main.xml    /HelloWorld/res/layout  line 12 Android AAPT Problem
Description Resource Path Location Type
error: No resource identifier found for attribute 'adUnitId' in package 'com.google.example'    main.xml    /HelloWorld/res/layout  line 12 Android AAPT Problem

J'ai modifié le main.xml , ajouter attrs.xml mais le compilateur n'a pas aimé.

1 votes

Collez la mise en page et le fichier attrs.xml.

300voto

M_AWADI Points 1555

Remplacer /res/ con /lib/ dans votre mise en page personnalisée nampespace.

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

dans votre cas, serait :

xmlns:yourApp="http://schemas.android.com/apk/lib/com.yourAppPackege.yourClass"

J'espère que cela vous aidera.

0 votes

J'ai eu un problème différent, mais la même solution a fonctionné. En fait, j'utilisais un fichier de mise en page qui faisait référence au fichier /res, que j'ai remplacé par /lib selon les instructions données ici, et cela a fonctionné. Pouvez-vous m'expliquer ce qui se passe ici ?

0 votes

Xmlns:yourApp="schemas.Android.com/apk/res-auto" ;

7 votes

Bonjour, que sont yourApp et yourClass dans la solution ci-dessus ?

74voto

James Points 936

J'ai eu le même problème. J'ai copié le code d'exemple de Google code, et je n'ai pas pu compiler.

xmlns:ads="http://schemas.android.com/apk/res/com.google.example"

Enfin, j'ai compris. La dernière partie du code " com.google.example ", est leur nom de paquet, vous devez donc le remplacer par le paquet de votre projet.

Par exemple, le paquet de mon projet est " com.jms.AdmobExample ", donc mon ads l'espace de nommage est :

xmlns:ads="http://schemas.android.com/apk/res/com.jms.AdmobExample"

Vérifiez mon exemple, il fonctionne bien. Vous pouvez télécharger l'APK pour essayer. J'ai aussi mis mon code source ici : Ajouter Google Admob dans une application Android

13 votes

Devs, si vous utilisez le paquet de votre projet en xmlns:ads, vous devez également ajouter 'attrs.xml' comme expliqué par James dans son lien. Pour le nouveau sdk Admob, attrs.xml n'est plus recommandé. Utilisez simplement l'espace de nom suivant : xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads‌​"

8 votes

@vivek.m, merci de m'avoir indiqué la bonne réponse ! Au lieu de apk/res, il faut utiliser apk/lib en cas de dépendance du projet 'apklib'.

4 votes

Merci, j'adore l'internet, surtout Stackoverflow.com.

42voto

Zennichimaro Points 1669

Pour moi, je dois ajouter

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

juste après :

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

dans res/layout/main.xml

1 votes

Vous êtes le sauveur de vie et de sommeil... Merci, vous avez sauvé mon sommeil :)

0 votes

J'ai une question sur Admob : stackoverflow.com/questions/36389729/ \

27voto

Bms270 Points 400

Vous pouvez également utiliser http://schemas.Android.com/apk/res-auto qui s'en chargera automatiquement. Utilisez-le comme ceci :

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

0 votes

@Niklas : Ce n'est pas un lien vers une page web. C'est une URL à utiliser comme ceci : xmlns:ads=" schémas.Android.com/apk/res-auto "qui résout automatiquement l'URL de la ressource. Voir ma réponse mise à jour ci-dessus.

8voto

J'ai eu le même problème, mais en utilisant un projet de bibliothèque. Le problème a été résolu dans la r17 : Au lieu d'utiliser l'espace de nom du paquet :

xmlns:app="http://schemas.android.com/apk/res/hu.droidium.exercises"

Il faut utiliser un espace de nom fictif :

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

Cela résoudra le problème des attributs qui ne sont pas accessibles depuis le projet de référencement.

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