web-dev-qa-db-fra.com

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

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é.

144
user584819

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.

298
M_AWADI

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

75
James

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

42
Zennichimaro

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"
27
Bms270

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

8
Bill

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.

8

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).

3
tjb

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.

3
P-A

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

2
Kabilan

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?

1
emcee

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. 

 Image

1
HashanR

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

1
MBH

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!

0
Adrian Grygutis

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.

0
Has AlTaiar

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.

0
Onimusha

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.

0
Shaikh Sohail

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>
0
N.L.N.Rao

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"
0
Sahana P

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/

0
Gracie

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.

0
smitty1

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

0
Shubham Soni

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. 

0
vicky

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

0
Gene

J'ai ajouté dans Android.support.design.widget.NawigationView ce paramètre:

Android:layout_gravity="start"

Et le problème a été résolu.

0
Bombey77