2014-09-28 8 views
3

Это мое первое приложение для Android, и я пытаюсь использовать объявления admob для своего приложения, но он не работает, несмотря на все, что я сделал.Рекламные объявления Admob, не показывающие

Это те коды в моей деятельности, связанные с объявлением

 protected void onCreate(Bundle savedInstanceState) { 
........ 

    LinearLayout rootLayout = (LinearLayout) findViewById(R.id.ForViewAd); 

    AdView adView = new AdView(this); 
    adView.setAdSize(AdSize.SMART_BANNER); 
    //i've gotten the test ad id by first setting this as 'abc' 
    //and then reading off the logcat 
    adView.setAdUnitId("XXXXXXXXX"); 

    rootLayout.addView(adView, 0); 

    AdRequest adRequest = new AdRequest.Builder() 
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
     .addTestDevice("XXXXXXXXXX") 
     .build(); 
    adView.loadAd(adRequest); 

Ниже приведен мой XML-коды

 <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    ....... 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:orientation="horizontal" > 


    <com.google.ads.AdView 
       android:id="@+id/ForViewAd" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       /> 
    </LinearLayout> 
    </RelativeLayout> 

В LogCat показания После запуска приложения на эмуляторе является как странным и запутанным

 09-28 15:28:21.076: E/Trace(968): error opening trace file: No such file or directory (2) 
     09-28 15:28:21.120: W/GooglePlayServicesUtil(968): Google Play services is missing. 
     09-28 15:28:21.140: I/Ads(968): Starting ad request. 
     09-28 15:28:21.140: I/Ads(968): 
     Use AdRequest.Builder.addTestDevice ("XXXXXXXXX") to get test ads on this device. 
     09-28 15:28:21.200: D/dalvikvm(968): DexOpt: --- BEGIN 'ads326198251.jar' (bootstrap=0) --- 
     09-28 15:28:21.216: D/dalvikvm(968): GC_CONCURRENT freed 155K, 3% free 10994K/11271K, paused 19ms+11ms, total 36ms 
     09-28 15:28:21.324: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp. 
     09-28 15:28:21.340: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp. 
     09-28 15:28:21.356: D/libEGL(968): loaded /system/lib/egl/libEGL_emulation.so 
     09-28 15:28:21.372: D/(968): HostConnection::get() New Host Connection established 0xb975ff68, tid 968 
     09-28 15:28:21.380: D/libEGL(968): loaded /system/lib/egl/libGLESv1_CM_emulation.so 
     09-28 15:28:21.380: D/libEGL(968): loaded /system/lib/egl/libGLESv2_emulation.so 
     09-28 15:28:21.432: W/EGL_emulation(968): eglSurfaceAttrib not implemented 
     09-28 15:28:21.448: D/OpenGLRenderer(968): Enabling debug mode 0 
     09-28 15:28:21.476: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb95468e0): name, size, mSize = 1, 1048576, 1048576 
     09-28 15:28:21.532: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb953e248): name, size, mSize = 2, 9216, 1057792 
     09-28 15:28:21.572: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb954fcb8): name, size, mSize = 4, 36864, 1094656 
     09-28 15:28:21.576: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb976f528): name, size, mSize = 5, 16384, 1111040 
     09-28 15:28:21.576: D/dalvikvm(968): DexOpt: --- END 'ads326198251.jar' (success) --- 
     09-28 15:28:21.576: D/dalvikvm(968): DEX prep '/data/data/com.example.testapp/cache/ads326198251.jar': unzip in 0ms, rewrite 375ms 
     09-28 15:28:21.704: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb954edf8): name, size, mSize = 8, 16384, 1127424 
     09-28 15:28:21.704: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb955e380): name, size, mSize = 9, 4096, 1131520 
     09-28 15:28:21.776: D/dalvikvm(968): GC_CONCURRENT freed 214K, 4% free 11181K/11527K, paused 14ms+1ms, total 22ms 
     09-28 15:28:21.780: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp. 
     09-28 15:28:21.788: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp. 
     09-28 15:28:22.040: W/Ads(968): Invalid unknown request error: [Cannot determine request type. Is your ad unit id correct?] 
     09-28 15:28:22.048: W/Ads(968): There was a problem getting an ad response. ErrorCode: 1 
     09-28 15:28:22.060: W/Ads(968): Failed to load ad: 1 
     09-28 15:38:01.600: D/dalvikvm(968): GC_CONCURRENT freed 398K, 5% free 11181K/11719K, paused 10ms+1ms, total 18ms 
     09-28 15:38:01.604: D/webviewglue(968): nativeDestroy view: 0xb97947e8 
     09-28 15:38:01.608: D/webviewglue(968): nativeDestroy view: 0xb97da500 

Как видите, на логанах имеется как минимум 3 ошибки т. Во-первых, сервисы google play были импортированы в проект. Я вижу это в папке частных библиотек Android (но не в папке libs).

Существует также ошибка, которая говорит, что недостаточно места, но я установил relativelayout правое и левое дополнение как 0sp. так что должно быть достаточно пространства по ширине?

И, наконец, код ошибки 1 или «Недопустимая ошибка неизвестного запроса»? Я этого не понимаю.

Помимо логарифма и того факта, что объявления не отображаются в любом месте активности, приложение работает нормально, без проблем.

Может кто-нибудь, пожалуйста, скажите мне, что я сделал не так?

Ниже приведены LogCat после того, что было предложено

09-29 17:31:47.290: D/jdwp(1025): Got wake-up signal, bailing out of select 
    09-29 17:31:47.290: D/dalvikvm(1025): Debugger has detached; object registry had 1 entries 
    09-29 17:31:47.302: W/GooglePlayServicesUtil(968): Google Play services is missing. 
    09-29 17:31:47.302: I/AndroidRuntime(1025): NOTE: attach of thread 'Binder_3' failed 
    09-29 17:31:47.318: I/Ads(968): Starting ad request. 
    09-29 17:31:47.318: I/Ads(968): Use AdRequest.Builder.addTestDevice("XXXXXX") to get test ads on this device. 
    09-29 17:31:47.418: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp. 
    09-29 17:31:47.422: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp. 
    09-29 17:31:47.446: W/EGL_emulation(968): eglSurfaceAttrib not implemented 
    09-29 17:31:47.454: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb820e8e0): name, size, mSize = 38, 1048576, 1131520 
    09-29 17:31:47.526: I/ActivityManager(324): Displayed com.example.testapp/com.example.testapp.MainActivity: +249ms 
    09-29 17:31:47.530: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp. 
    09-29 17:31:47.530: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp. 
    09-29 17:31:47.606: W/Ads(968): Invalid unknown request error: [Cannot determine request type. Is your ad unit id correct?] 
    09-29 17:31:47.610: W/Ads(968): There was a problem getting an ad response. ErrorCode: 1 
    09-29 17:31:47.610: W/Ads(968): Failed to load ad: 1 
    09-29 17:31:47.622: D/dalvikvm(968): GC_CONCURRENT freed 256K, 4% free 11580K/11975K, paused 1ms+1ms, total 15ms 
    09-29 17:31:47.622: D/webviewglue(968): nativeDestroy view: 0xb85bfb60 
+0

Предоставлено ли решение? –

+0

Не совсем. Ошибки, по-видимому, снижаются раньше, но пока объявления пока не отображаются. – user65163

+0

Исключение связано с пространством для показа объявления. Проверьте строку «Недостаточно места для показа рекламы. Требуется 360x50 dp, но имеет только 340x519 дп». –

ответ

4

есть проблема с smart_banner // Недостаточно места для показа рекламы. Потребности 360x50 дп

баннерная реклама работает отлично,

я решить это как ... удалить рекламу из макета и поместить в корневую раскладку, удалить край корневого макета

<RelativeLayout> 
    <LinearLayout> 
    </LinearLayout> 
    <layout> 
    </layout> 
//here 
<com.google.android.gms.ads.AdView /> 
</RelativeLayout> 
+0

«Удалите край корневой компоновки» для меня. Спасибо – Ponmalar

+0

Удалите отступы и поля, работающие для меня, спасибо –

0

Вы гавань добавили testdevice идентификатор правильно, я нашел свой идентификатор устройства в журналах и обновил код.

AdRequest adRequest = new AdRequest.Builder() 
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
     .addTestDevice("5C2521D171291728A381823D5ACC9B8D") 
     .build(); 
    adView.loadAd(adRequest); 

Далее в файле макета только ниже достаточно, так как ваш код Java является установка AdUnitId, testdeviceid и adsize. Вы можете поместить его в код java или в файл макета.

<com.google.ads.AdView 
       android:id="@+id/ForViewAd" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"/> 

В том числе официальной странице Google для получения дополнительной информации https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start

+0

Просто попробовал свое исправить. К сожалению, похоже, что подобная ошибка все же происходит. Я обновил logcat выше с помощью метода – user65163

0

Добавление к @ ответ Ранджит, так как вы используете AdMob через сервисы Google Play, вы должны изменить макет следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
....... 

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentBottom="true" 
android:layout_centerHorizontal="true" 
android:orientation="horizontal" > 

Вы можете следить за official guide по переходу от старого AdMob на новый AdMob

Кстати, в будущем не публикуйте свои правильные идентификаторы adunit в Интернете. Я замаскировал его

+0

Прошу прощения. Я буду маскировать id adunit здесь. – user65163

Смежные вопросы