2011-08-09 22 views
5

Solo estoy tratando de ejecutar AdMob y he probado diferentes ejemplos de código de "trabajo" desde aquí. Ninguno de ellos funciona.No ejecute AdMob en el emulador (android 2.2)

En la actividad que tengo:

alcrear()

AdView ad = (AdView) findViewById(R.id.ad); 
    AdRequest r = new AdRequest(); 
    r.addTestDevice("X3XFX518X7DE1FD879XA5XXAX1AX8BXX"); //no clue why this string 
    ad.loadAd(r); 

En la definición de vista he insertado el siguiente (y sí en lugar de myPubID no es en realidad mi verdadero Identificación PUB):

<com.google.ads.AdView 
    android:id="@+id/ad" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    ads:adUnitId="<myPubID>" 
    ads:adSize="BANNER"/> 

Todo lo que obtengo es una pantalla negra durante 1 segundo.

log Siguiendo (logcat) se imprime durante la ejecución

08-09 10:45:03.527: INFO/ActivityManager(59): Start proc de.syrtec.android.bogloid for activity de.syrtec.android.bogloid/.StartSeite: pid=4402 uid=10043 gids={3003} 
08-09 10:45:04.887: ERROR/Ads(4402): Could not get currentAdManager. 
08-09 10:45:05.397: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: [email protected] 
08-09 10:45:05.567: INFO/Ads(4402): To get test ads on this device, call adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
08-09 10:45:06.159: INFO/Ads(4402): adRequestUrlHtml: <html><head><script src="http://www.gstatic.com/afma/sdk-core-v40.js"></script><script>AFMA_buildAdURL({"preqs":0,"u_sd":1.5,"slotname":"********;</script></head><body></body></html> 
08-09 10:45:07.528: WARN/webcore(4402): Can't get the viewWidth after the first layout 
08-09 10:45:07.848: INFO/Ads(4402): Received ad url: <"url": "http://r.admob.com:80/ad_source.php?preqs=0&u_sd=1.5&slotname=*****: "null"> 
08-09 10:45:08.809: DEBUG/webviewglue(4402): nativeDestroy view: 0x2bbb30 
08-09 10:45:08.818: INFO/Ads(4402): onFailedToReceiveAd(Ad request successful, but no ad returned due to lack of ad inventory.) 
08-09 10:45:11.168: DEBUG/dalvikvm(3148): GC_EXPLICIT freed 32 objects/1640 bytes in 131ms 
08-09 10:45:16.237: DEBUG/dalvikvm(272): GC_EXPLICIT freed 195 objects/12168 bytes in 137ms 

utilizo GoogleAdMobAdsSdk-4.1.1.jar y Android 2.2 en emulador.

En mi cuenta de AdMob no hay filtro y AdSense está activado.

También probé por instanciando AdView y agregarlo a la rootlayout con: (en referencia a http://code.google.com/mobile/ads/docs/android/fundamentals.html)

AdView adView = new AdView(this, AdSize.BANNER, "PUB_ID"); 
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 
layout.addView(adView); 
adView.loadAd(new AdRequest()); 

y tiene el mismo comportamiento con el siguiente registro:

08-09 10:49:18.367: INFO/ActivityManager(59): Start proc de.syrtec.android.bogloid for activity de.syrtec.android.bogloid/.StartSeite: pid=4543 uid=10043 gids={3003} 
08-09 10:49:19.297: ERROR/Ads(4543): Could not get currentAdManager. 
08-09 10:49:19.797: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{44fe4350 de.syrtec.android.bogloid/.StartSeite} 
08-09 10:49:20.067: INFO/Ads(4543): To get test ads on this device, call adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
08-09 10:49:20.379: INFO/Ads(4543): adRequestUrlHtml: <html><head><script src="http://www.gstatic.com/afma/sdk-core-v40.js"></script*****;</script></head><body></body></html> 
08-09 10:49:20.397: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: [email protected] 
08-09 10:49:22.737: WARN/webcore(4543): Can't get the viewWidth after the first layout 
08-09 10:49:22.957: INFO/Ads(4543): Received ad url: <"url": "http://r.admob.com:80/ad_source.php?preqs=0&u_sd=1.5&slotname=***** "null"> 
08-09 10:49:24.038: DEBUG/dalvikvm(4543): GC_FOR_MALLOC freed 3826 objects/234984 bytes in 154ms 
08-09 10:49:24.058: DEBUG/webviewglue(4543): nativeDestroy view: 0x2c5320 
08-09 10:49:24.058: INFO/Ads(4543): onFailedToReceiveAd(Ad request successful, but no ad returned due to lack of ad inventory.) 
08-09 10:49:24.078: DEBUG/webviewglue(4543): nativeDestroy view: 0x2b81d0 

¿Alguien tiene una pista?

Respuesta

5

traté como en el tutorial sugerido (blog.kerul.net/2011/05/)

pero solo me dan una vista de negro por un segundo y luego regresar a "escritorio" android:

La fuente se ve ahora así:

clase de actividad:

class StartActivity extends AdActivity{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    AdView adview = (AdView)findViewById(R.id.adView1); 
    AdRequest re = new AdRequest(); 
    re.addTestDevice(AdRequest.TEST_EMULATOR); 
    re.setTesting(true); 
    adview.loadAd(re); 
} 
... 
} 

la vista:

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

    <com.google.ads.AdView 
     xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
     android:id="@+id/adView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     ads:adSize="BANNER" 
     ads:adUnitId="MY_PUB_ID" /> 

</LinearLayout> 

y sí que sustituyó MY_PUB_ID con mi verdadero Identificación del editor

¿Hay algo que falta? ¿Qué emulador usa con qué tiempo de ejecución de Android?

+0

Hmm ... muy interesante. ¿Es este tu proyecto o hay más código? Primero, elimine su re.addTestDevice (Adrequest.TEST_EMULATOR); si usa la fila re.setTesting (true), no es necesario. ¿Intentó hacer otro proyecto en Eclipse también, o es este el primero? Probablemente, el problema no sea con el código, sino con el Eclipse. – Zwiebel

+0

Gracias :-) ... ahora aparece el anuncio de prueba imprimiendo "¡Correcto! Ahora está listo para viajar a través de la aplicación Galaxy" Entonces, ¿cómo proceder con anuncios reales? lo haría así: 1. Retire la re.setTesting (verdadero) 2. Publicar mi aplicación el mercado de las aplicaciones aplicación 3. eslabón de AdMob a la URL real de la aplicación mercado real es todavía algo faltante o incorrecto? –

+0

Finalmente: D ¿Cuál fue el problema? ¿Solo borraste el re.addTestDevice? Sí, primero debe borrar la fila re.setTesting (true) de su proyecto y luego publicarla. Creo que no necesita la url real del mercado real, solo necesita escribir el nombre de su paquete para el ejemplo que se mostró en el sitio del admob. Estoy feliz de poder ayudarte;) – Zwiebel

1

Tiene que colocar en // sin ninguna pista de por qué esta cadena es el código de su dispositivo de prueba. Prefiero usar setTesting (verdadero) mientras lo pruebo, pero ya sabes. El problema puede ser esto.

Ah, y veo que su programa no puede recibir aviso debido a la falta del inventario de anuncios colocar esto en su diseño en la sección de com.google.ads.AdView: xmlns: anuncio = "http://schemas.android.com/apk/lib/com.google.ads "

Y no olvides llevar un permiso de Internet a tu manifiesto.

Espero que ayude.

Editar: No estoy seguro de que este sea su problema, pero creo que puede ayudar.

+0

prefiero fijar el dispositivo de prueba con r.addTestdevice (phoneID), lo recibe mi teléfono dev prueba-anuncios, y no necesita volver setTesting () a False cuando lanzo. Además, si usas varios teléfonos y simuladores de desarrollo, solo agregas sus identificaciones, y ya está hecho. En cuanto al "// No hay pista ...", no hay problema con esta línea :-) – Smugrik

+0

Gracias por la respuesta ... Lo probé como sugirió ... y obtuve el mismo comportamiento y la segunda salida de registro de mi publicación inicial –

+0

Probablemente ayudará: http://blog.kerul.net/2011/05/installing-google-admob-into-android.html Al menos espero :) – Zwiebel

0

La falta de inventario significa que AdMob no tiene anuncios para publicar, esto es habitual si su cuenta es nueva, después de un tiempo su tasa de relleno aumentará y se publicarán más anuncios. Si ve una luz verde de estado en la página de sitios/aplicaciones de AdMob, no debe preocuparse Intente agregar AdSense para aumentar su tasa de relleno Enabling Google AdSense Ads in Your Applications.

edición: la falta ya tenía adsense habilitado

+0

Obtuve un estado verde con el aviso: activa: su sitio web está enviando actualmente solicitudes de vista a AdMob. (No entiendo por qué mi sitio está hablando con AdMob ...) ¿Puedo hacer algo para aumentar la tasa de relleno ... Para que se muestre un solo anuncio? ... ¿Para qué sirve la conexión a mi sitio web? no tiene nada que ver con mi aplicación? –

+0

su sitio es un término genérico que usa admob para sus publicaciones, aplicaciones, sitios web móviles, etc. ... entonces significa que su aplicación se está comunicando con admob – Smugrik

+0

, entonces mi url de mi sitio se usa solo como identificador para mi aplicación, ¿no? –

0

Tengo esta experiencia de tener las aplicaciones estrellándose y mostrar mensajes como este - "Error al inflar la clase com.admob.ads.AdView". Realizando algunas investigaciones y pruebas Concluí el siguiente atributo XML para mostrar AdView;

`<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:background="@drawable/bg1" 
android:orientation="vertical" > 

<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
    <com.google.ads.AdView 
     xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
     android:id="@+id/ad" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     ads:adSize="SMART_BANNER" 
     ads:adUnitId="738a44d913034b9f" 
     /> 
</TableRow> 

<TableRow 
    android:id="@+id/tableRow3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <EditText 
     android:id="@+id/txtsearch" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:inputType="textMultiLine" 
     android:maxLines="3" 
     android:minLines="1" 
     android:scrollbarStyle="outsideOverlay" 
     android:scrollbars="vertical" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 







    <Button 
     android:id="@+id/btnkamus" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableRight="@drawable/search" /> 




    <Button 
     android:id="@+id/btnsearch" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="Kesan" /> 


    <Button 
     android:id="@+id/btncadang" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="Cadang" /> 

</TableRow> 


<WebView 
    android:id="@+id/webView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

</LinearLayout>` 

tutorial completo está aquí - http://blog.kerul.net/2012/08/example-how-to-install-google-admob-6x.html

Cuestiones relacionadas