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),
- Cómo detener todos los subprocesos de trabajo en la aplicación android
- Cambiar la configuración regional en el emulador de Android
- Autocompletar texto google lugares api
- Cómo capturar el evento de volver a una actividad después de golpear de nuevo
- Cómo obtener el ID de botón de radio comprobado creado dinámicamente en android
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.
- Convertir objeto complejo de Java en Json
- ¿Cómo puede el puerto AsyncTask de Android a Java?
- No se puede reducir el espacio extra en MPAndroidChart RadarChart
- Android takePicture ha fallado
- ¿Cómo inicio un servicio desde mi Interactor usando el patrón MVP en android?
- Bordes dentados en imágenes presentadas en Android
- ¿Podemos instanciar una clase abstracta?
- Determine cuando un ScheduledExecutorService disparará a continuación
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" />