Lorsque j'ai suivi les instructions pour ajouter une annonce dans mon application avec XML, j'ai reçu 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 édité le fichier main.xml
, ajouter le fichier attrs.xml
, mais le compilateur ne l'a pas aimé.
Remplacez /res/
par /lib/
dans votre espace de présentation personnalisé.
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 ça aide.
J'ai eu le même problème. J'ai copié le code d'exemple à partir du code Google et je n'ai pas pu compiler.
xmlns:ads="http://schemas.Android.com/apk/res/com.google.example"
Finalement, j'ai compris. La dernière partie du code "com.google.example
" correspond au nom de leur package. Vous devez donc le remplacer par votre package de projet.
Par exemple, mon package de projet est "com.jms.AdmobExample
", mon espace de nommage ads
est donc:
xmlns:ads="http://schemas.Android.com/apk/res/com.jms.AdmobExample"
Vérifiez mon exemple, cela fonctionne bien. Vous pouvez télécharger le fichier APK à essayer. J'ai aussi mis mon code source ici: Ajouter Google Admob dans une application Android
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
Vous pouvez également utiliser http://schemas.Android.com/apk/res-auto qui s'en chargerait automatiquement. Utilisez-le comme ceci:
xmlns:ads="http://schemas.Android.com/apk/res-auto"
je télécharge la même démo personnalisée à partir de Android.com et reçois le même problème de conformité.
au premier, je change
xmlns:custom="http://schemas.Android.com/apk/res/com.example.Android.customviews"
à
xmlns:custom="http://schemas.Android.com/apk/lib/com.example.Android.customviews"
ça marche . alors j'obtiens une autre solution
xmlns:custom="http://schemas.Android.com/apk/res-auto"
cela fonctionne aussi, mais il y a quelques différences. La deuxième solution a la fonction de préfet. Je trouve la raison, peut-être que vous pouvez avoir un coup de main. Merci
J'ai eu le même problème, mais en utilisant un projet de bibliothèque. Le problème a été résolu dans r17: Au lieu d'utiliser l'espace de noms du package:
xmlns:app="http://schemas.Android.com/apk/res/hu.droidium.exercises"
Il faut utiliser un espace de nom factice:
xmlns:app="http://schemas.Android.com/apk/res-auto"
Cela résoudra le problème des attributs non accessibles à partir du projet de référencement.
J'ai reçu cette erreur en ce qui concerne l'attribut largepasse, mon application ne fonctionnait pas sous Eclipse, mais sous elle était toujours construite et s'exécutait normalement.
L'Android documentation indique que:
xmlns: Android
Defines the Android namespace. This attribute should always be set to "http://schemas.Android.com/apk/res/Android".
J'ai effacé cette ligne dans mon manifeste, enregistrée dans Eclipse, collée à nouveau et sauvegardée, et cela a fonctionné. Dans mon cas, je suppose que le problème était Eclipse, ant et adb ne se parlaient pas correctement et que la sauvegarde réinitialisait quelque chose. Il est intéressant de noter que le redémarrage d’Eclipse n’a pas permis de résoudre ce problème (la première chose à faire est généralement de résoudre ce type de problèmes, mais il résout généralement le problème).
Comme vous le spécifiez dans votre attrs.xml
, votre attribut adSize appartient à l'espace de noms com.google.ads.AdView
. Essayer de changer:
Android:adUnitId="a14bd6d2c63e055" Android:adSize="BANNER"
à
ads:adUnitId="a14bd6d2c63e055" ads:adSize="BANNER"
et ça devrait marcher.
Assurez-vous d’avoir inclus cette partie dans votre mise en page (en haut sous xmlns: Android line)
xmlns:ads="http://schemas.Android.com/apk/res/com.google.example"
...........blah blah..
Vérifiez également si vous avez inclus attrs.xml dans les res/values /
Cliquez ici pour plus de détails . http://code.google.com/mobile/ads/docs/Android/banner_xml.html
Selon la réponse ici , je pense que vous devez modifier l’attribut xmlns: ads. Par exemple, changez ceci:
<com.google.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res/com.google.example .../>
pour ça:
<com.google.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res/com.your.app.namespace" .../>
Cela a résolu le problème pour moi. Si vous avez encore des erreurs, pourriez-vous préciser?
Je cherchais une réponse mais je ne pouvais pas trouver, mais je pouvais enfin résoudre ce problème en ajoutant une dépendance play-service-ads
essayons ceci:
*) Fichier -> Structure du projet ... -> Sous le module, vous pouvez trouver l'application. Il existe une option appelée dépendances et vous pouvez ajouter com.google.Android.gms: play-services-ads: xxx dépendance. à votre projet
J'ai rencontré ce problème lorsque j'essayais d'importer des projets Eclipse dans Android Studio.
En règle générale, j'intègre la propriété xmlns: ads dans les propriétés adview:
<com.google.Android.gms.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/adView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id"/>
de sorte que vous n’ayez pas besoin de vous intégrer au parent chaque fois que vous copiez l’avis.
Il suffit de copier et coller l’avis ci-dessus et de le coller n’importe où, cela devrait fonctionner
Mon problème était très similaire (produit le même problème). Après refactorisation du nom de la variable par l'option "refactor -> rename" dans Android Studio (de "valeur" à "myValue"), j'ai également trouvé des modifications dans le fichier manifeste. Le pool de "valeurs" de métadonnées a été remplacé par "myValue".
<meta-data
Android:name="com.facebook.sdk.ApplicationId"
Android:myValue="@string/facebook_app_id"/>
Après avoir rétabli le fichier, tout semble être à nouveau correct.
<meta-data
Android:name="com.facebook.sdk.ApplicationId"
Android:value="@string/facebook_app_id"/>
J'espère que ça va aider quelqu'un!
J'ai eu un problème similaire sur MonoDroid lors de la construction d'une bibliothèque de classes avec des fichiers Drawables et Layouts ayant l'attribut "Android:"
dans le fichier xml. Je reçois une erreur similaire à celle de la question.
Aucun identifiant de ressource trouvé pour l'attribut 'textCursorDrawable' dans package 'Android'
J'ai trouvé à partir de cet attribut "Android:" qu'il est uniquement disponible dans l'API Android Niveau 12+ et j'essayais de construire une version plus ancienne. La mise à jour de mon projet pour le compiler sous Android 4.0 corrigeait le problème. Voici où j'ai trouvé la réponse. https://groups.google.com/forum/?fromgroups#!topic/Android-developers/ocxKphM5MWM Assurez-vous simplement de vous baser sur le bon niveau d'API si vous obtenez un niveau similaire problème et assurez-vous que l'identificateur manquant existe dans le niveau d'API contre lequel vous êtes construit.
J'ajoute la solution qui a fonctionné pour moi pour cette même erreur.
J'ai cliqué avec le bouton droit sur projet> propriétés> (panneau de gauche) Android
Panneau de droite sous Library
J'ai retiré la bibliothèque défectueuse et l'ai ajoutée à nouveau.
Pour moi, cette erreur s'est produite après un fichier Eclipse corrompu dans un espace de travail dans lequel je devais importer à nouveau tous les projets.
il suffit de changer le sdk cible, cliquer avec le bouton droit de la souris sur le projet, puis sur la propriété , sélectionner Android, puis sélectionner la dernière API.
Ajoutez xmlns: ads = "http://schemas.Android.com/apk/lib/com.google.ads" , Cela résoudra votre problème.
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.app.activities.Initializer" >
<com.google.Android.gms.ads.AdView
Android:id="@+id/adView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-123456789/123456789"/>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/hello_world" />
</RelativeLayout>
Si votre projet est graduel, remplacez:
xmlns:Android="http://schemas.Android.com/apk/res/Android"
avec:
xmlns:app="http://schemas.Android.com/apk/res-auto"
J'ai eu le même problème et mon remède est simplement d'activer la liaison de données dans le build.gradle de mon module d'application.
Android { ... dataBinding.enabled = true }
ref - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-Android/
Dans mon cas, il me manquait une dépendance dans build.gradle au niveau de l'application.
La solution consistait à ajouter la dépendance sous la forme google ci-dessous:
Ouvrez le fichier build.gradle au niveau de l'application pour votre application et recherchez une section "dépendances".
dependencies {
implementation ...SOME_IMPLEMENTATION
implementation ...SOME_IMPLEMENTATION
implementation 'com.google.Android.gms:play-services-ads:18.1.1'//<---ADD THIS LINE
}
Ajoutez la ligne ci-dessus, qui indique à Gradle de récupérer la dernière version du kit de développement mobile Ads SDK et des dépendances associées. Une fois que cela est fait, enregistrez le fichier et effectuez une synchronisation Gradle.
Remplacez xmlns:Android="http://schemas.Android.com/apk/res/Android"
Par xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
puis reconstruire le projet
J'ai également fait face au même problème, j'utilisais GoogleAdMobAdsSDK-4.1.0.jar
puis j'ai essayé avec GoogleAdMobAdsSDK-4.0.4.jar
maintenant cela fonctionne bien, c'est un problème de fichier jar selon mon expérience.
La même erreur m’arrivait dans le fichier "activity_banner_xml.xml" du dossier res/layout. Ce que j'ai fait pour le réparer était de remplacer
<com.google.Android.gms.samples.ads.AdView
avec
<com.google.Android.gms.ads.AdView
Il n'y avait aucune référence à mon nom de paquet. Assurez-vous également que vous avez défini adUnitId pour ads:adUnitId="@string/banner_ad_unit_id">
L’ID d’unité d’ajout se trouve dans votre dossier res/Values / Strings.
Donc, mon fichier de mise en page final ressemble à ceci:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/mainLayout"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<com.google.Android.gms.ads.AdView
Android:id="@+id/adView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_alignParentLeft="true"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_unit_id"/>
J'ai ajouté dans Android.support.design.widget.NawigationView ce paramètre:
Android:layout_gravity="start"
Et le problème a été résolu.