wake-up-neo.net

Erforderliches XML-Attribut "adSize" fehlte

Ich erhalte ein "Erforderliches XML-Attribut" "AdSize" fehlte ", wenn ich meine App starte. Dies wird auf dem Bildschirm meines Smartphones anstelle meines Banners angezeigt. 

Ich habe die verschiedenen Lösungen ausprobiert, die auf Stack (wie xmlns:ads="http://schemas.Android.com/apk/res-auto" anstelle von xmlns:ads="http://schemas.Android.com/apk/libs/com.google.ads" oder anstelle von xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads") basieren.

Hier ist mein Java-Code (eine einfache Hello World, nur um zu versuchen, ein Banner zu implementieren):

package com.example.publicite;

import Android.os.Bundle;
import Android.app.Activity;
import Android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

Hier ist meine XML-Datei:

<RelativeLayout 
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
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=".MainActivity" >

<TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="@string/hello_world" />

<com.google.Android.gms.ads.AdView
    xmlns:ads="http://schemas.Android.com/apk/libs/com.google.ads"
    Android:id="@+id/adView"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="MyAdUnitId"
    ads:loadAdOnCreate="true"
    ads:testDevices="TEST_EMULATOR" />

<Button
    Android:id="@+id/votrescore"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:text="..." />

</RelativeLayout>

und hier ist mein Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.publicite"
Android:versionCode="1"
Android:versionName="1.0" >

<uses-sdk
    Android:minSdkVersion="13"
    Android:targetSdkVersion="13" />

<application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >

    <meta-data Android:name="com.google.Android.gms.version"
               Android:value="@integer/google_play_services_version"/>

    <activity
        Android:name="com.example.publicite.MainActivity"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        Android:name="com.google.Android.gms.ads.AdActivity"
        Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
</application>

<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

 </manifest>

Ich benutze den google play service lib.

16
Glork

Hier ist eine seltsame Antwort. Ich habe gerade meine Eclipse neu gestartet und es hat funktioniert. Das könnte jemandem helfen. 

Starten Sie einfach Eclipse oder Android Studio neu

7
zizutg

Ändern Sie Ihre Deklaration auf diese Weise:

<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"
    ads:adUnitId="YOUR_AD_UNIT_ID"
    ads:adSize="BANNER"/>

---- EDIT ----

Sie können es auch programmgesteuert versuchen. Definieren Sie statt eines AdView-Layoutelements einfach eine LinearLayout und führen Sie den Code folgendermaßen aus:

final AdView adView = new AdView(getActivity());
adView.setAdUnitId("YourId");
adView.setAdSize(AdSize.BANNER);

final LinearLayout adLinLay = (LinearLayout) view.findViewById(R.id.your_defined_linearlayout);
adLinLay.addView(adView);

final AdRequest.Builder adReq = new AdRequest.Builder();
final AdRequest adRequest = adReq.build();
adView.loadAd(adRequest);
29
nKn

Ich hatte das gleiche Problem und korrigierte es mit den Xmlns-Labels. Ich habe zwei Beschriftungen "xmlns: ads" eingefügt (eines für "res-auto" in der AdView und eines für "Tools" im übergeordneten Layout). Ich musste zwei Labels für "res auto" verwenden, eines mit xmlns: app im FloatingActionButton und ein anderes mit xmlns: ads im AdView:

<RelativeLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:ads="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:fitsSystemWindows="true">

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/appbar"
        Android:layout_width="match_parent"
        Android:layout_height="@dimen/fragment_start_margin"
        Android:background="@drawable/fondo_proyectos"
        Android:elevation="4dp"
        Android:gravity="bottom"
        Android:minHeight="@dimen/toolbar_height">
    </Android.support.v7.widget.Toolbar>

    <com.google.Android.gms.ads.AdView
        xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/av_bottom_banner"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_inferior_ad_unit_id"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentBottom="true"
        Android:layout_centerHorizontal="true"
        />

    <Android.support.design.widget.CoordinatorLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_above="@+id/av_bottom_banner"
        Android:fitsSystemWindows="true">

        <Android.support.design.widget.FloatingActionButton
            xmlns:app="http://schemas.Android.com/apk/res-auto"
            Android:id="@+id/fab"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_above="@+id/av_bottom_banner"
            Android:layout_alignParentEnd="true"
            Android:layout_gravity="bottom|end"
            Android:layout_marginLeft="@dimen/fab_margin"
            Android:layout_marginRight="@dimen/fab_margin"
            Android:elevation="4dp"
            Android:src="@Android:drawable/ic_input_add"
            Android:tint="@Android:color/white"
            app:fabSize="normal"
            app:srcCompat="@drawable/ic_account_circle" />

        <include layout="@layout/proyecto_content" />

    </Android.support.design.widget.CoordinatorLayout>

</RelativeLayout>
4
joselquin

Ich habe das gleiche problem.

Lösung für mich:

 xmlns:ads=""

gewechselt zu

xmlns:ads="http://schemas.Android.com/apk/res-auto"
2
ketom

Problem behoben für mich durch Ändern des Namensraums uri

von 

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

zu

xmlns:ads="http://schemas.Android.com/apk/res-auto"
2
Kartik_Agarwal

Reinigen Sie einfach Ihre App! 

Build -> Projekt reinigen

Die Nachricht verschwindet.

1
FeelCode

Ändern Sie wie folgt .. .. Entfernen Sie Anzeigen: loadAdOnCreate = "true"

   <com.google.Android.gms.ads.AdView
    Android:id="@+id/adView"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="MyAdUnitId"/>

Überprüfen Sie diesen Link, es hat ein klares Beispiel

https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#play

1
Libin

Dies ist der Fall, wenn Eclipse die XML-Datei nicht mit der Google Play-Bibliothek synchronisiert hat. Reinigen Sie das Projekt und starten Sie Eclipse erneut

1
Nino Frenn

Ich hatte den gleichen Fehler. aber ich konnte es nicht mit der angehefteten Antwort beheben. Ich habe die XML so geändert.

<com.google.Android.gms.ads.AdView
  xmlns:ads="http://schemas.Android.com/apk/res-auto"
  Android:id="@+id/adView"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
  Android:layout_centerHorizontal="true"
  Android:layout_alignParentBottom="true"
  ads:adSize="BANNER"
  ads:adUnitId = "ca-app-pub-3940256099942544/6300978111">
</com.google.Android.gms.ads.AdView>

Die wichtigsten Änderungen sind: xmlns:ads="http://schemas.Android.com/apk/res-auto" und ads:adSize="BANNER". Ich habe meinen Laptop-Bildschirm aufgezeichnet, als ich dieses Problem gelöst habe. Wenn Sie visuelle Illustrationen mögen, können Sie das Video auf YouTube sehen.

0
Abanoub Hanna

fügen Sie dies in Android Manifest hinzu:

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme">

    <meta-data
        Android:name="com.google.Android.gms.version"
        Android:value="@integer/google_play_services_version" />

    <activity
        Android:name="com.google.Android.gms.ads.AdActivity"
        Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        Android:theme="@Android:style/Theme.Translucent" />

Android: theme = "@ Android: style/Theme.Translucent"

es löst mein Problem, ich hoffe, es wird dein lösen :)

0
metomero

Es stellt sich heraus, dass SieNICHTals wrap_content als Größe verwenden können, daher müssen Sie stattdessen eine Größe angeben .. _ Meine Anzeigen funktionierten nicht und nach einem Tag des Googlings änderte ich meine 

Android:layout_height="wrap_content"

zu

Android:layout_height="100dp"

und es wurde das Problem behoben. "match_parent" funktioniert (ich habe das für meine Breite eingestellt)

0
Justin
<com.google.Android.gms.ads.AdView xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/adMobBanner"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111"`enter code here`
        Android:layout_centerVertical="true" />
0
Nandam Neeraj
<com.google.Android.gms.ads.AdView
    xmlns:ads="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/adView1"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    ads:adUnitId="ca-app-pub-39402560999425544/1033173712"

// IHRE EINZIGARTIGE ID ads: adSize = "BANNER" />

0
DHRUVIL BORAD

Überprüfen Sie auch auf DEIVCE_ID_EMULATOR, da in meinem Code der folgende Code aus dem Tutorial von Google folgt:

AdRequest adRequest = new AdRequest.Builder()
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
     .build();

In meinem Fall habe ich es auf einem echten Gerät getestet, also kam es nie auf, sondern gab mir nur die Meldung, dass die Werbung nicht gesetzt war ... Ich habe einen Emulator installiert und die Lösung von nkn funktioniert perfekt.

Hier ist mein vollständiger Code: .__ In der Haupttätigkeit:

AdView adView = (AdView)findViewById(R.id.adView);
AdRequest adRequest = newAdRequest.Builder()
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
     .build();
adView.loadAd(adRequest);

und mein XML:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content">

    <com.google.Android.gms.ads.AdView
        xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/adView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        ads:adUnitId="@string/UNIT_ID"
        ads:adSize="BANNER"/>
</LinearLayout>

Führen Sie JETZT die App auf Ihrem Gerät aus und checken Sie Ihr Logcat aus, da folgende Zeile angezeigt wird: I/Ads: Use 

AdRequest.Builder.addTestDevice("33BE2250B43518CCDA7DE426D04EE232")
to get test ads on this device.

Kopieren Sie diese ID (DIFFERENT FOR YOUR DEVICE) wie folgt in das .addTestDevice:

AdView adView = (AdView)findViewById(R.id.adView);
    AdRequest adRequest = newAdRequest.Builder()
         .addTestDevice("33BE2250B43518CCDA7DE426D04EE232")
         .build();
    adView.loadAd(adRequest);

UND So habe ich dieses Problem in meinem Fall behoben.

Ich hoffe es hilft.

0
timv