java以编程方式设置adsize不适用于NativeAdExpress
我的广告XML代码是
<com.google.安卓.gms.ads.NativeExpressAdView
安卓:id="@+id/adView"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
app:adUnitId="YOUR_AD_ID"/>
我使用以下代码以编程方式设置adsize
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: The ad size and ad unit ID must be set before loadAd is called.
当我这样尝试时,效果很好
<com.google.安卓.gms.ads.NativeExpressAdView
安卓:id="@+id/adView"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
app:adUnitId="ca-app-pub-3940256099942544/1072772517"
app:adSize="320x250"/>
但我想动态设置广告宽度
# 1 楼答案
我正在动态设置adsize,它工作正常。 下面是我的代码
可能需要在加载add之前设置add unit id
希望这对你有帮助
# 2 楼答案
当我以编程方式添加NativeExpressAdView并从XML中删除它时,问题已经解决了,如下所示