
我在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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)