2

広告の 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"/>

しかし、広告の幅を動的に設定したい

4

2 に答える 2