Проблемы с встраиванием Android AdMob, сетью и центрированием - PullRequest
0 голосов
/ 12 декабря 2011

Я пытаюсь добавить admob в свое приложение. То, что я хочу видеть, - это баннер в центре снизу, но я не смог сделать это через 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|s‌​creenSize|smallestScreenSize"/>

Ответы [ 4 ]

0 голосов
/ 03 января 2012

Моя игра для Android была опубликована на рынке Google, но я не получил никаких впечатлений от AdMob.В коде не было существенных изменений или вообще каких-либо изменений, которые касались исходников AdMob, и предыдущие версии моей игры работали должным образом.

Как оказалось, проблема была повышена в процессе запутывания, выполняемого proguard.Если вы используете его для сортировки символов Java, избавьтесь от директивы -optimize из вашего proguard.cfg и вставьте вместо нее -dontoptimize.

0 голосов
/ 12 декабря 2011

Я использовал этот код, возможно, он вам поможет.Поместите свое объявление в 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);

Надеюсь, это поможет.

0 голосов
/ 13 декабря 2011

Я только что решил проблему

    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 после первого макета», которую я все еще получаю, но я не думаю, что это произойдет ..

0 голосов
/ 12 декабря 2011

Я не уверен, как вы получаете это исключение.Реализация 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);
...