El tamaño del anuncio y el ID de la unidad de anuncio deben estar configurados antes de cargarla.

Tengo esto en mi archivo xml principal:

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adUnitId="******************" ads:adSize="BANNER" android:id="@+id/adView"/> 

Ya he definido el tamaño del anuncio y el ID de la unidad, pero cuando se ejecuta (desde MainActivity.java),

 AdView adView = (AdView)this.findViewById(com.example.lovetestactual.R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); 

Lanzó una excepción de lo que está en el título.

He encontrado la solución en el ejemplo github, es decir:

en lugar de

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

Borre la etiqueta xmlns: ads *** y agregue

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

A su etiqueta LinearLayout de la siguiente manera:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hello"/> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="wrap_content" ads:adSize="BANNER" ads:adUnitId="INSERT_YOUR_AD_UNIT_ID_HERE"/> </LinearLayout> 

Eso es 🙂

Github enlace para este xml

Esto va a ser vago, ya que no ha indicado qué tipo de vista de su archivo XML es (Relativo, Lineal, etc)

En mi aplicación con una disposición relativa desplazable que he incluido:

 <RelativeLayout android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/TextView07" android:paddingTop="20dp" > </RelativeLayout> 

Ahora dentro de mi clase real que quiero wan't el anuncio que he incluido:

 private AdView adView; /* Your ad unit id. Replace with your actual ad unit id. */ private static final String AD_UNIT_ID = "ca-app-pub-xxxxxx/yyyyyy"; /** * Simply loads the xml about page layout to display the text. */ public void onCreate(Bundle start) { super.onCreate(start); setContentView(R.layout.about); final TelephonyManager tm = (TelephonyManager) getBaseContext() .getSystemService(Context.TELEPHONY_SERVICE); //String deviceid = tm.getDeviceId(); adView = new AdView(this); adView.setAdSize(AdSize.SMART_BANNER); adView.setAdUnitId(AD_UNIT_ID); // Add the AdView to the view hierarchy. The view will have no size // until the ad is loaded. RelativeLayout layout = (RelativeLayout) findViewById(R.id.test); layout.addView(adView); // Create an ad request. Check logcat output for the hashed device ID to // get test ads on a physical device. AdRequest adRequest = new AdRequest.Builder() .build(); //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR) //.addTestDevice(deviceid).build(); // Start loading the ad in the background. adView.loadAd(adRequest); } 

}

Ahora idealmente usted desea utilizar una bandera elegante para optimizar su disposición para todos los dispositivos, como tengo arriba, esto es estándar ahora.

Si esto no sirve de ayuda, ve hacia aquí.

Asegúrese de establecer el tamaño del anuncio y el ID de la unidad de anuncios de la misma manera (es decir, establecer tanto en XML como en ambos programas).

Mucha gente La migración de aplicaciones existentes al método de servicios de Google Play está agregando incorrectamente la información incorrecta.

Algo que me gustaría señalar es que muchas personas con la misma pregunta han estado utilizando esto como una plantilla

 <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/lib-auto" android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="50dp" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX" ads:loadAdOnCreate="true" > </com.google.android.gms.ads.AdView> 

Esto es incorrecto como xmlns: los anuncios deben cambiarse a: – xmlns:ads="http://schemas.android.com/apk/res-auto"

Al igual que

 <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="50dp" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX" ads:loadAdOnCreate="true" > </com.google.android.gms.ads.AdView> 

Intenté cambiar la declaración del espacio de nombres pero apenas no trabaja. Fijé esto especificando un valor de la altura para el adView en vez de wrap_content . Esto funciona para mi

 <com.google.android.gms.ads.AdView android:id="@+id/adView2" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_gravity="center|bottom" ads:adSize="BANNER" ads:adUnitId="@string/banner_ad_unit_id" /> 
  • Elemento aleatorio de la matriz de cadenas
  • Android Wear detecta "Mute"
  • PointerIndex fuera de rango Multitouch para Android
  • Restablecer TextView vaya a la parte superior
  • Plugin de servicio de fondo de Android en el teléfono
  • ¿Qué personajes están disponibles en Android?
  • Cómo quitar el campo SECONDS de un DateFormat
  • Obtención de error al inflar la clase android.support.design.widget.NavigationView
  • Cabecera Content-Length ya presente
  • Desplazamiento de ListViews juntos
  • Desactivado Llamar a 'ejecutar (Params ...)' como miembro de tipo raw 'android.os.AsyncTask'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.