2016-11-13 20 views
1

Я пытаюсь использовать NativeExpressAdView но вместо объявления он показываетNativeExpressAdView XML adSize пропускал

Обязательный атрибут XML «adSize» пропускал

в черном фоне, красный каймой коробка. Я добавляю AdUnit и adSize к AdView программно, как этот

<com.google.android.gms.ads.NativeExpressAdView 
    android:id="@+id/nativeAdView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center"/> 

Java Код:

nativeAd = (NativeExpressAdView) itemView.findViewById(R.id.nativeAdView); 
     int widthInDP = context.getResources().getConfiguration().screenWidthDp; 
     widthInDP -= context.getResources().getDimension(R.dimen.activity_horizontal_margin); 
     nativeAd.setAdUnitId(context.getString(R.string.dummy_ad_unit_id)); 
     nativeAd.setAdSize(new AdSize(widthInDP, 100)); 
     nativeAd.loadAd(adRequest); 

и AdRequest первоначально был объявлен следующим образом:

 adRequest = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .addTestDevice("DD8112531D2B704F33C3B0314744E92B") 
      .addTestDevice("62F4961171DF9F253BC3639F7B9A686B") 
      .build(); 

Я последовал за учебник, как описано в официальных документах Firebase AdMob. Почему я не могу показывать рекламу в NativeExpressAdView при динамическом изменении размера объявления?

ответ

1

Было решено, когда я добавил NativeExpressAdView программно и удалить это из XML следующим образом.

nativeAd = new NativeExpressAdView(this); 
int widthInDP = context.getResources().getConfiguration().screenWidthDp; 
    widthInDP -= context.getResources().getDimension(R.dimen.activity_horizontal_margin); 
nativeAd.setAdSize(new AdSize(widthInDP, 250)); 
nativeAd.setAdUnitId("myAdUnitId"); 

// Create an ad request. 
AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); 

// Optionally populate the ad request builder. 
adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR); 

// Add the NativeExpressAdView to the view hierarchy. 
layout.addView(nativeAd); 

// Start loading the ad. 
nativeAd.loadAd(adRequestBuilder.build()); 
+0

Сделал это лосось. Работает на меня. –

3

добавить эту строку кода и ваше объявление должно быть хорошо

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

так стать, как это и decleare в adSize

<com.google.android.gms.ads.NativeExpressAdView 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
android:id="@+id/nativeAdView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
ads:adSize="320x150" 
android:layout_gravity="center"/> 
+0

Я пробовал использовать это пространство имен. Кроме того, я хочу установить размер adView динамически. –

Смежные вопросы