2011-07-04 3 views
2

J'ai mon code AdMob mis en œuvre dans mon fichier XML comme ceci:Android AdMob -onReceivedAd a frappé, mais pas annonce affichée

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="5dp"> 

    <com.google.ads.AdView android:id="@+id/adView" 
        android:layout_width="30dp" 
        android:layout_height="30dp" 
        ads:adUnitId="???????" 
        ads:adSize="BANNER" 
        ads:loadAdOnCreate="false"/> 

    <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp" /> 
</LinearLayout> 
</TabHost> 

Dans ma méthode onCreate de mon activité:

// load ads 
    AdView adView = (AdView)findViewById(R.id.adView); 
    AdRequest request = new AdRequest(); 
    //request.setTesting(true); 

    adView.setAdListener(new AdListener() {  
     public void onReceiveAd(Ad arg0) { 
      // TODO Auto-generated method stub    
     }   
     public void onPresentScreen(Ad arg0) { 
      // TODO Auto-generated method stub 
     }   
     public void onLeaveApplication(Ad arg0) { 
      // TODO Auto-generated method stub 
     } 

     public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) { 
      // TODO Auto-generated method stub 
     } 

     public void onDismissScreen(Ad arg0) { 
      // TODO Auto-generated method stub 
     } 
    }); 

    adView.loadAd(request); 

Je peux mettre un point d'arrêt dans l'écouteur onReceivedAd et toujours arrêter là quand je cours mon application; Cependant, rien ne s'affiche. Ma page AdMob montre également les demandes qui se produisent. J'ai essayé dans et hors du mode de test (voir la ligne commentée ci-dessus) avec les mêmes résultats.

Aussi, de peur que quelqu'un ne le demande, mes annonces: adUnitId = "????" est défini sur Publisher ID trouvé à côté de mon application sur le site Web AdMob.

Quelqu'un at-il obtenu des suggestions sur la façon de déboguer à partir d'ici?

+0

Pourquoi ne pas mettre un peu de code (et un point de rupture sur elle) à l'intérieur 'public void onFailedToReceiveAd (Ad arg0, ErrorCode arg1)' de l'AdListener' et voir s'il y a une erreur lors de la réception de l'annonce? –

+0

@Aleks - J'avais une ligne de code dans chacune des méthodes d'écoute avant (juste int i = 0; i ++). Le seul point d'arrêt qui ait jamais été touché était onReceivedAd - les 3 autres étaient toujours ignorés. – bugfixr

+0

@mibollma - vous avez raison, je n'avais pas remarqué que je mettais l'annonce dans mon onglet hôte. J'ai fait un LinearLayout sur le dessus, puis j'ai déplacé l'adview et l'onglet host dans ça et ça marche. Par tous les moyens, ajoutez une réponse afin que vous puissiez obtenir un crédit :) – bugfixr

Répondre

1

Supprimer TabWidget et FrameLayout et réessayer juste pour tester. Je pense que android:layout_height="fill_parent" sur FrameLayout est le problème.

0

La hauteur de mise en page doit être 50dp (ou plus) pour afficher l'annonce. L'annonce ne dispose pas de suffisamment d'espace pour s'afficher. Vérifiez le journal.

android:layout_height="50dp" 

et la largeur doit être wrap_content

Questions connexes