広告の XML コードは
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:adUnitId="YOUR_AD_ID"/>
次のコードを使用してプログラムで広告サイズを設定しています
mAdView = (NativeExpressAdView) cardView.findViewById(R.id.adView);
int width = screenwidth - 16;
mAdView.setAdSize(new AdSize(width, 250));
AdRequest request = new AdRequest.Builder()
.addTestDevice("YOUR_DEVICE")
.build();
mAdView.loadAd(request);
実行すると、アプリがエラーでクラッシュします
java.lang.IllegalStateException: loadAd を呼び出す前に、広告サイズと広告ユニット ID を設定する必要があります。
このように試してみるとうまくいきます
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:adUnitId="ca-app-pub-3940256099942544/1072772517"
app:adSize="320x250"/>
しかし、広告の幅を動的に設定したい