2016-05-20 9 views
6

Ich habe versucht, native Express-Anzeigen in meine Anwendung zu integrieren. In der Dokumentation zu den nativen Anzeigen, die ich gelesen habe, funktionieren sie am besten, wenn sie mit der Anzeigengröße FULL_WIDTH angezeigt werden. Ich versuchte, meine Anzeigengröße auf FULL_WIDTH aber es funktioniert nicht mit Illegal:Neue Admob Express Native-Anzeigen schlagen mit IllegalStateException fehl

Caused by: java.lang.IllegalStateException: The ad size and ad unit ID must be set before loadAd is called. 

Hier mein xml-Code ist:

<com.google.android.gms.ads.NativeExpressAdView 
android:id="@+id/adView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
ads:adSize="FULL_WIDTH" 
ads:adUnitId="@string/native_ad_unit"/> 

Die Anzeige-Einheit korrekt ist, funktioniert es mit anderen Anzeigengrößen wie 320x150 etc.

Ist etwas falsch mit meiner Implementierung?

Prost

Antwort

19

ich eine Lösung gefunden, es wird funktionieren, wenn Sie es wie folgt verwenden:

<com.google.android.gms.ads.NativeExpressAdView 
android:id="@+id/adView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
ads:adSize="FULL_WIDTHx80" 
ads:adUnitId="@string/native_ad_unit"/> 
+0

Vielen Dank, Sie sparen mir viel Zeit, die adSize war das Problem. –

+0

Hallo, ich benutze Native Ad und es zeigt Interner Fehler. Es waren zwei Tage und nichts hat für mich funktioniert. Mein XML-Tag chetan

+0

HINWEIS:' ads: adSize = "FULL_WIDTHxsome_height" 'funktioniert nicht, wenn' NativeExpressAdView' horizontale Ränder hat. Weil es versucht, die gesamte Breite des Geräts zu belegen. –

1

Sie können es nur programmgesteuert festlegen. Hier finden Sie einen Auszug aus der Dokumentation:

Publisher können auch die FULL_WIDTH-Konstante verwenden, wenn Sie eine AdSize für ein NativeExpressAdView programmgesteuert erstellen. In diesem Fall belegt die Anzeige die gesamte Breite des Gerätebildschirms.

Quelle: https://firebase.google.com/docs/admob/android/native-express#nativeexpressadview

+0

NativeExpressAdView adView = (NativeExpressAdView) v.findViewById (R.id.adView); adView.setAdSize (AdSize.FULL_WIDTH); das funktioniert nicht ... –

+0

Sie können AdSize nur einstellen, wenn Sie NativeExpressAdView programmgesteuert erstellen. Ich konnte ein Beispiel finden [hier] (https://firebase.google.com/docs/reference/android/com/google/android/gms/ads/NativeExpressAdView). Verwenden Sie stattdessen FULL_WIDTH anstelle der Breite 400, wie im Beispiel angegeben. –