我正在尝试在我的应用程序中添加admob。我想看到的是底部中心adob横幅,但我在5小时后无法做到并寻求帮助。 (是5个小时) 我有2个错误也让admob甚至没有出现我相信..
一个错误是“onFailedToReceiveAd(发生网络错误。)” 另一个是“第一次布局后无法获取viewWidth”
我尝试了任何FILL PARRENT WRAP CONTENT和Gravity.CENTER组合,即使是我没有在这里写过很多这样的人。即使它仍显示在左下角。 我需要中底......
非常感谢您的帮助
这里是代码和logCAT;
Window window = getWindow();
RelativeLayout adsLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adsLayout.setGravity(Gravity.BOTTOM);
adView = new AdView(this, AdSize.BANNER, "a1xxx6c");
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
adView.loadAd(adRequest);
adsLayout.addView(adView);
window.addContentView(adsLayout,lp2);
I/Ads(4564): adRequestUrlHtml: <html><head><script src="http://media.admob.com/sdk-core-v40.js"></script><script>AFMA_buildAdURL({"preqs":0,"u_sd":1.5,"slotname":"a1xxx6c","u_w":569,"msid":"ko.tb","simulator":1,"cap":"m,a","adtest":"on","js":"afma-sdk-a-v4.3.1","isu":"B3EEABB8EE11C2BE770B684D95219ECB","cipa":0,"format":"320x50_mb","net":"ed","app_name":"11.android.ko.tb","hl":"en","u_h":320,"u_audio":4});</script></head><body></body></html>
D/dalvikvm(4564): GC_EXTERNAL_ALLOC freed 80K, 49% free 2820K/5511K, external 17296K/18967K, paused 113ms
I/dalvikvm-heap(4564): Clamp target GC heap from 24.915MB to 24.000MB
D/dalvikvm(4564): GC_FOR_MALLOC freed 6K, 49% free 2814K/5511K, external 18046K/18967K, paused 48ms
E/ERROR(4564): ERROR IN CODE: java.lang.NullPointerException
W/System.err(4564):java.lang.NullPointerException
W/System.err(4564):at ko.tb.KOActivity.EksikSorularWebService(KOActivity.java:1413)
W/System.err(4564):at ko.tb.KOActivity.checkDB(KOActivity.java:457)
W/System.err(4564):at ko.tb.KOActivity.GenelTimeline(KOActivity.java:410)
W/System.err(4564):at ko.tb.KOActivity$1.onTick(KOActivity.java:307)
W/System.err(4564):at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:124)
W/System.err(4564):at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err(4564):at android.os.Looper.loop(Looper.java:123)
W/System.err(4564):at android.app.ActivityThread.main(ActivityThread.java:3683)
W/System.err(4564):at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err(4564):at java.lang.reflect.Method.invoke(Method.java:507)
W/System.err(4564):at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
W/System.err(4564):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
W/System.err(4564):at dalvik.system.NativeStart.main(Native Method)
W/webcore(4564): Can't get the viewWidth after the first layout
I/Ads(4564): AdLoader timed out after 60000ms while getting the URL.
D/webviewglue(4564): nativeDestroy view: 0x3903c0
I/Ads(4564): onFailedToReceiveAd(A network error occurred.)
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
答案 0 :(得分:0)
我不确定你是如何得到那个例外的。虽然我不熟悉从窗口添加内容视图,但AdMob实现看起来是正确的。此外,您确定您的模拟器/设备可以访问互联网吗?除非与例外有关,否则网络错误意味着互联网连接问题。尝试在移动浏览器上点击主页。
对于AdView的居中,请尝试设置CENTER_HORIZONTAL
参数:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
adsLayout.addView(adView, params);
答案 1 :(得分:0)
我使用了这段代码,也许它会对你有所帮助。将您的广告投放到linearLayout或其他广告中,然后像我的代码一样使用它。
LinearLayout layout = (LinearLayout)findViewById(R.id.reklam);
adView = new AdView(this, AdSize.BANNER, "xxxxxxxx");
layout.addView(adView);
AdRequest request = new AdRequest();
request.setTesting(true);
adView.loadAd(request);
我希望这会有所帮助。
答案 2 :(得分:0)
我刚刚解决了问题
com.google.ads.AdRequest adRequest = new com.google.ads.AdRequest();
adRequest.addTestDevice(com.google.ads.AdRequest.TEST_EMULATOR);
adView.setPadding(200, 0, 0, 0);
adView.loadAd(adRequest);
我也忽略了错误“无法在第一次布局后得到viewWidth”,但我仍然没有这样做但是我相信没有效果..
答案 3 :(得分:0)
我的Android游戏已在Google的市场上发布,但我没有从AdMob获得任何印象。代码没有发生重大变化,甚至根本没有触及AdMob来源的变化以及之前版本的游戏都正常运行。
事实证明,在proguard完成的混淆过程中问题被提升了。如果您正在使用它来修改Java的符号,那么请从proguard.cfg中删除-optimize
指令并改为放置-dontoptimize
。