android – 如何以AdMob方式指定adUnitId?

android – 如何以AdMob方式指定adUnitId?,第1张

概述我正在尝试通过编程方式将adUnitId设置为新的Google Play服务(旧AdMob)的广告. 我在XML中使用(在< include>)中使用): <com.google.android.gms.ads.AdView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://sc 我正在尝试通过编程方式将adUnitID设置为新的Google Play服务(旧AdMob)的广告.

我在XML中使用(在< include>)中使用):

<com.Google.androID.gms.ads.AdVIEw    xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:ads="http://schemas.androID.com/apk/res-auto"    androID:ID="@+ID/adVIEw"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    ads:adSize="BANNER"/>

这在onCreate()中:

AdVIEw mAdvIEw = (AdVIEw)findVIEwByID(R.ID.adVIEw);    mAdvIEw.setAdUnitID(((App)getApplication()).getAdmobKey());    mAdvIEw.setAdListener(new AdListener() {        @OverrIDe        public voID onAdLoaded() {            super.onAdLoaded();            findVIEwByID(R.ID.adVIEw).setVisibility(VIEw.VISIBLE);        }    });    AdRequest adRequest = new AdRequest.Builder()            .addTestDevice(AdRequest.DEVICE_ID_EMulATOR)            .build();    mAdvIEw.loadAd(adRequest);

我得到:

The ad size and ad unit ID must be set before loadAd is called.

所以第二个选择是以编程方式制作广告.

新的XML:

<linearLayout    xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_height="wrap_content"    androID:layout_wIDth="match_parent"    androID:ID="@+ID/adVIEw"    />

新代码:

AdVIEw mAdvIEw = new AdVIEw(this);...((linearLayout)findVIEwByID(R.ID.adVIEw)).addVIEw(mAdvIEw);mAdvIEw.loadAd(adRequest);

但我得到同样的错误.

我也尝试从com.Google.androID.gms.ads.AdVIEw继承自定义视图,但它是最终的.

任何建议?

解决方法 当loadAd发生时,loadAd()方法检查if(mAdVIEw.getAdSize()== null || mAdVIEw.getAdUnitID()== null)).

尝试在调用loadAd以确定其状态之前记录(mAdVIEw.getAdSize()== null || mAdVIEw.getAdUnitID()== null)的布尔输出:

mAdVIEw = new AdVIEw(this);    mAdVIEw.setAdSize(AdSize.BANNER);    mAdVIEw.setAdUnitID(AD_UNIT_ID);    AdRequest adRequest = new AdRequest.Builder()        .addTestDevice(AdRequest.DEVICE_ID_EMulATOR)        .build();    if(mAdVIEw.getAdSize() != null || mAdVIEw.getAdUnitID() != null)    mAdVIEw.loadAd(adRequest);   // else Log state of adsize/adunit((linearLayout)findVIEwByID(R.ID.adVIEw)).addVIEw(mAdvIEw);
总结

以上是内存溢出为你收集整理的android – 如何以AdMob方式指定adUnitId?全部内容,希望文章能够帮你解决android – 如何以AdMob方式指定adUnitId?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1131696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存