webentwicklung-frage-antwort-db.com.de

fehler: Für das Attribut 'adSize' im Paket 'com.google.example' main.xml wurde kein Ressourcenbezeichner gefunden

Als ich den Anweisungen zum Hinzufügen einer Anzeige in xml mit meiner App folgte, wurden folgende Fehler angezeigt:

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

Ich habe die main.xml-Datei bearbeitet, attrs.xml-Datei hinzugefügt, aber der Compiler hat sie nicht gemocht.

144
user584819

Ersetzen Sie /res/ durch /lib/ in Ihrem benutzerdefinierten Layout-Speicherbereich. 

xmlns:Android="http://schemas.Android.com/apk/res/Android" wäre in Ihrem Fall: 

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

Ich hoffe, es hilft.

298
M_AWADI

Ich hatte das gleiche Problem. Ich habe den Beispielcode aus Google-Code kopiert und konnte nicht kompilieren.

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

Schließlich habe ich es herausgefunden. Der letzte Teil des Codes "com.google.example" ist der Name des Pakets. Sie müssen ihn durch Ihr Projektpaket ersetzen. 

Zum Beispiel ist mein Projektpaket "com.jms.AdmobExample", daher lautet mein Namensraum ads:

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

Überprüfen Sie mein Beispiel, es funktioniert gut. Sie können die APK herunterladen, um es auszuprobieren. Ich habe auch meinen Quellcode hier eingefügt: Google Admob in Android-Anwendung hinzufügen

75
James

für mich muss ich hinzufügen

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

gleich nach:

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

in res/layout/main.xml

42
Zennichimaro

Sie können auch http://schemas.Android.com/apk/res-auto verwenden, das sich automatisch darum kümmert. Verwenden Sie es so:

xmlns:ads="http://schemas.Android.com/apk/res-auto"
27
Bms270

ich lade die gleiche Demo von Android.com herunter und erhalte das gleiche Problem.

am ersten verändere ich mich

xmlns:custom="http://schemas.Android.com/apk/res/com.example.Android.customviews"

zu

xmlns:custom="http://schemas.Android.com/apk/lib/com.example.Android.customviews"

es funktioniert . dann bekomme ich eine andere lösung

 xmlns:custom="http://schemas.Android.com/apk/res-auto"

es funktioniert auch, aber es gibt einige Unterschiede. Die zweite Lösung hat eine Präfektfunktion. Ich finde den Grund, vielleicht können Sie mithelfen. Danke

8
Bill

Ich hatte das gleiche Problem, aber während ich ein Bibliotheksprojekt benutzte. Das Problem wurde in r17 gelöst: Statt den Namespace des Pakets zu verwenden:

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

Man muss einen Dummy-Namespace verwenden:

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

Dadurch wird das Problem behoben, dass die Attribute nicht auf das referenzierende Projekt zugreifen können.

Ich habe diesen Fehler in Bezug auf das largeHeap-Attribut erhalten, meine Anwendung wurde nicht unter Eclipse ausgeführt, aber unter ant wurde sie trotzdem erstellt und lief normal.

In der Android Dokumentation heißt es:

xmlns: Android

Defines the Android namespace. This attribute should always be set to "http://schemas.Android.com/apk/res/Android".

Ich löschte diese Zeile in meinem Manifest, rettete sie in Eclipse, fügte die Zeile wieder ein und rettete sie wieder, und sie funktionierte. In meinem Fall war das Problem wohl Eclipse, da ant und adb nicht richtig miteinander sprachen und das Speichern etwas zurücksetzte. Ein interessanter Neustart von Eclipse hat dieses Problem nicht gelöst (normalerweise ist bei diesen Problemen der Neustart von Eclipse das erste, was Sie versuchen sollten, und normalerweise löst es das Problem).

3
tjb

Wenn Sie in Ihrem attrs.xml angeben, gehört Ihr AdSize-Attribut zum Namensraum com.google.ads.AdView. Versuche zu ändern:

Android:adUnitId="a14bd6d2c63e055"         Android:adSize="BANNER"

zu

ads:adUnitId="a14bd6d2c63e055"         ads:adSize="BANNER"

und es sollte funktionieren.

3
P-A

Stellen Sie sicher, dass Sie diesen Teil in Ihr Layout aufgenommen haben (oben unter xmlns: Android-Zeile).

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

Prüfen Sie auch, ob Sie attrs.xml in die res/values ​​/ aufgenommen haben.

Weitere Informationen finden Sie hier . http://code.google.com/mobile/ads/docs/Android/banner_xml.html

2
Kabilan

Basierend auf der Antwort hier denke ich, müssen Sie das Attribut xmlns: ads ändern. Ändern Sie dies beispielsweise:

<com.google.ads.AdView xmlns:ads="http://schemas.Android.com/apk/res/com.google.example .../>

zu diesem:

<com.google.ads.AdView xmlns:ads="http://schemas.Android.com/apk/res/com.your.app.namespace" .../>

Es hat es für mich behoben. Wenn Sie immer noch Fehler erhalten, könnten Sie das näher erläutern?

1
emcee

Ich habe nach Antworten gesucht, konnte aber nicht finden, aber schließlich konnte ich das Problem beheben, indem ich play-service-ads Abhängigkeit hinzufügte.

*) Datei -> Projektstruktur ... -> Unter dem Modul finden Sie eine App und es gibt eine Option namens Abhängigkeiten. Sie können com.google.Android.gms hinzufügen: play-services-ads: xxx Abhängigkeit zu deinem Projekt 

Ich habe dieses Problem angetroffen, wenn ich versuche, Eclipse-Projekte in Android Studio zu importieren. 

 Image

1
HashanR

Normalerweise bette ich die xmlns: ads-Eigenschaft folgendermaßen in die adview-Eigenschaften ein:

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

sie müssen also nicht jedes Mal, wenn Sie die Vorschau kopieren, in das übergeordnete Element eingebettet werden. 

Kopieren Sie einfach den obigen Hinweis und fügen Sie ihn an einer beliebigen Stelle ein. Das sollte funktionieren

1
MBH

Mein Problem war sehr ähnlich (erzeugt dasselbe Problem). Nach dem Refactoring des Variablennamens durch die Option "refactor -> umbenennen" in Android Studio (von "value" bis "myValue") habe ich auch Änderungen in der Manifestdatei gefunden. Der Metadaten- "Wert" -Pool wurde in "myValue" geändert.

<meta-data
        Android:name="com.facebook.sdk.ApplicationId"
        Android:myValue="@string/facebook_app_id"/>

Nach dem Zurücksetzen der Datei scheint alles wieder in Ordnung zu sein.

<meta-data
        Android:name="com.facebook.sdk.ApplicationId"
        Android:value="@string/facebook_app_id"/>

Ich hoffe, es wird jemandem helfen!

0
Adrian Grygutis

Beim Erstellen einer Klassenbibliothek mit Drawables- und Layouts-Dateien mit "Android:"-Attribut in der XML-Datei hatte ich ein ähnliches Problem auf MonoDroid. Ich bekomme einen ähnlichen Fehler wie der in der Frage.

Für das Attribut 'textCursorDrawable' in .__ wurde kein Ressourcenbezeichner gefunden. Paket 'Android'

Ich habe herausgefunden, dass das Attribut "Android:" nur in Android API Level 12+ verfügbar ist und ich versuchte, eine ältere Version zu erstellen. Durch die Aktualisierung meines Projekts für Android 4.0 wurde das Problem für mich behoben. Hier habe ich die Antwort gefunden. https://groups.google.com/forum/?fromgroups#!topic/Android-developers/ocxKphM5MWM .__ Stellen Sie sicher, dass Sie die richtige API-Ebene verwenden, wenn Sie eine ähnliche API erhalten Geben Sie das Problem ein und stellen Sie sicher, dass der fehlende Bezeichner in der API-Ebene vorhanden ist, für die Sie erstellt werden.

0
Has AlTaiar

Ich füge die Lösung hinzu, die bei diesem Fehler für mich funktioniert hat.

Ich habe mit der rechten Maustaste auf Projekt> Eigenschaften> (linkes Feld) Android geklickt

Rechter Bereich unter Library Ich habe die fehlerhafte Bibliothek entfernt und erneut hinzugefügt.

Bei mir trat dieser Fehler nach einer beschädigten Eclipse-Datei auf, in der ich alle Projekte erneut importieren musste.

0
Onimusha

Ändern Sie einfach das Ziel-SDK, klicken Sie mit der rechten Maustaste auf das Projekt, und klicken Sie auf Wählen Sie Android und wählen Sie die neueste API aus

0
Shaikh Sohail

Fügen Sie xmlns: ads = "http://schemas.Android.com/apk/lib/com.google.ads" , .__ hinzu. Dies löst Ihr Problem.

<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

Wenn Ihr Projekt ein gradle Projekt ist, ersetzen Sie:

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

mit:

xmlns:app="http://schemas.Android.com/apk/res-auto"
0
Sahana P

Ich hatte das gleiche Problem, und ich heile einfach die Datenbindung im build.gradle meines App-Moduls.

Android { ... dataBinding.enabled = true }

ref - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-Android/

0
Gracie

In meinem Fall fehlte mir eine Abhängigkeit im build.gradle auf App-Ebene.

Die Lösung bestand darin, die Abhängigkeit wie folgt in Google-Konturen hinzuzufügen:

Öffnen Sie die build.gradle-Datei auf App-Ebene für Ihre App und suchen Sie nach einem Abschnitt "Abhängigkeiten".

dependencies {
    implementation ...SOME_IMPLEMENTATION
    implementation ...SOME_IMPLEMENTATION
    implementation 'com.google.Android.gms:play-services-ads:18.1.1'//<---ADD THIS LINE
}

Fügen Sie die obige Zeile hinzu, in der Gradle angewiesen wird, die neueste Version des Mobile Ads SDK und weitere zugehörige Abhängigkeiten einzuspielen. Speichern Sie anschließend die Datei und führen Sie eine Gradle-Synchronisierung durch.

0
smitty1

Ersetzen Sie xmlns:Android="http://schemas.Android.com/apk/res/Android" Durch xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"

dann Projekt neu erstellen

0
Shubham Soni

Ich stand auch vor dem gleichen Problem, ich verwendete GoogleAdMobAdsSDK-4.1.0.jar, dann versuchte ich es mit GoogleAdMobAdsSDK-4.0.4.jar

0
vicky

In der Datei "activity_banner_xml.xml" im Ordner res/layout ist der gleiche Fehler aufgetreten. Was ich getan habe, um es zu reparieren, wurde ersetzt 

<com.google.Android.gms.samples.ads.AdView

mit 

<com.google.Android.gms.ads.AdView

Es gab keine Hinweise auf meinen Paketnamen. Stellen Sie außerdem sicher, dass Sie die AdUnitId für ads:adUnitId="@string/banner_ad_unit_id">.__ festgelegt haben. Die Add-Unit-ID befindet sich im Ordner res/Values ​​/ Strings. 

Meine endgültige Layoutdatei sieht also so aus:

<?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

Ich habe in Android.support.design.widget.NawigationView diesen Parameter hinzugefügt:

Android:layout_gravity="start"

Und das Problem wurde gelöst.

0
Bombey77