Don't show admob ads

This is my first android app and I am trying to use admob ads for my app, but it doesn't work despite everything I have done.

These are the codes in my activity related to the declaration

     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);

      

Below are my XML codes

     <?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>

      

The logcat readings when running the app on the emulator are strange and confusing

      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

      

As you can see, at least 3 errors are displayed from the logarithm. First, the google play services have been imported into the project. I can see this in the Android private libraries folder (but not in the libs folder).

There's also an error that says there isn't enough space, but I set the relativelayout of the right and left padding to 0sp. so there should be enough space in the width?

Finally, error code 1 or "Invalid unknown request error"? I do not understand this.

Apart from the logarithm and the fact that the ads are not showing anywhere in the action, the app ran fine, no problem.

Can someone please tell me what I did wrong?

Following is the logarithm after what was suggested

    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

      

+3


source to share


3 answers


there is a problem with smart_banner // Not enough space to show ads. 360x50 dp required

BANNER ads work great,



I solve this as ... remove ads from layout and put in root layout, remove edge of root layout

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

      

+4


source


You added the testdevice id incorrectly, I found your device id in your logs and updated the code.

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

      

Next, only one is enough in your layout file as your java code sets adunitid, testdeviceid and adsize. You can put it in java code or layout file.



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

      

Including the official google page for more information https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start

0


source


Adding to @ Ranjith's answer, since you are using admob via google play services, you should change your layout like this:

 <?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" >

      

You can follow the official guide about migrating from old admob to new admob

By the way, do not post your correct adunit IDs on the internet in the future. I disguised it

0


source







All Articles