2012-05-23 16 views
5

Estoy intentando añadir un anuncio de AdMob a mi aplicación Android pero cada vez que voy a abrir la actividad que se supone que debe mostrar el anuncio me sale este error:ReferenceError no capturadas: AFMA_getSdkConstants no está definido

I/Ads(11448): adRequestUrlHtml: <html><head><script src="http://media.admob.com/sdk-core-v40.js"></script><script>AFMA_getSdkConstants();AFMA_buildAdURL({"kw":[],"preqs":4,"session_id":"17111845472336325405","u_sd":2,"seq_num":"5","slotname":"MYUSERIDHERE","u_w":360,"msid":"com.lazyprogrammer.dartscore","adtest":"on","js":"afma-sdk-a-v6.0.1","mv":"8011019.com.android.vending","isu":"70069487A7A68D24BEF2581104A73318","cipa":0,"format":"360x50_mb","net":"wi","smart_h":"auto","app_name":"1.android.com.lazyprogrammer.dartscore","hl":"en","smart_w":"full","u_h":613,"carrier":"26203","ptime":225498,"u_audio":1});</script></head><body></body></html> 
E/Ads(11448): JS: Uncaught ReferenceError: AFMA_getSdkConstants is not defined (about:blank:1) 
E/Web Console(11448): Uncaught ReferenceError: AFMA_getSdkConstants is not defined at about:blank:1 
I/Ads(11448): AdLoader timed out after 60000ms while getting the URL. 
D/webviewglue(11448): nativeDestroy view: 0x2bc958 
I/Ads(11448): onFailedToReceiveAd(A network error occurred.) 
I/Ads(11448): AdLoader timed out after 60000ms while getting the URL. 
D/webviewglue(11448): nativeDestroy view: 0x5a1850 
I/Ads(11448): onFailedToReceiveAd(A network error occurred.) 

No puedo encontrar nada sobre este problema en Google o en otro lugar y no creo que esté haciendo algo mal.

Por si acaso, aquí está mi fragmento de XML que se supone que muestra el anuncio:

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

    <com.google.ads.AdView 
     android:id="@+id/adView" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ads:adSize="SMART_BANNER" 
     ads:adUnitId="MyIDhere" 
     ads:loadAdOnCreate="true" 
     ads:testDevices="70069487A7A68D24BEF2581104A73318" /> 

</RelativeLayout> 

Por supuesto Saqué todo el - creo - código innecesario para este problema, pero si es necesario para ver lo publicaré aquí también.

También saqué mi ID de unidad de AdMob, probablemente se dio cuenta de esto pero estoy escribiendo esto aquí para que UnitId faltante no sea una respuesta.

Mi manifiesto tiene los permisos correctos en la lista:
android.permission.ACCESS_NETWORK_STATE android.permission.INTERNET

y también he añadido el AdActivity con los configChanges derecha

+0

De los registros parece que estás en 6.0.1. Supongo que tienes los 7 configChanges que AdMob especifica si tu aplicación se ejecuta. ¿Estás seguro de que tu dispositivo tiene conexión a internet? –

+0

Sí, el dispositivo está conectado a mi wifi doméstico, y aquí están mis configchanges: android: configChanges = "keyboard | keyboardHidden | orientation | screenLayout | uiMode | screenSize | smallestScreenSize" – dr3minem

+0

hmm, estoy perplejo. ¿Es este dispositivo específico? Funciona en emuladores? –

Respuesta

10

que tenía este error también y resuelto cargando el anuncio en un hilo separado (en ICS no está permitido realizar operaciones de red en el hilo principal)

(new Thread() { 
       public void run() { 
        Looper.prepare(); 
        adView.loadAd(new AdRequest()); 
       } 
      }).start(); 
+0

¡Vaya gracias, ya no esperaba una respuesta y esto fue corto, directo al grano y lo arregló! ¡Gracias! – dr3minem

+1

Definitivamente esta no es la respuesta. Esto no solucionó exactamente el mismo problema. – AutoM8R

+0

No ha arreglado el mío tampoco. Aparentemente es un problema conocido con ciertos dispositivos o quizás solo 4.0.4 ICS. Mismo error en mi HTC Desire HD. Funciona bien en el emulador en mi stock nexus 7. Lo intenté con y sin un hilo nuevo. –

2

Tuve este problema cuando me movía entre redes y dejaba el emulador en ejecución.

Descubrí que simplemente reiniciar el emulador una vez que estaba conectado a la nueva red resolvió el problema.

3

Simplemente marque todas sus conexiones a internet. Mi computadora portátil tenía Internet, mientras que el teléfono no. Intenté conectarme al servidor web en mi computadora portátil y funcionaba bien. así que después de probar un montón con el teléfono, reinicié mi enrutador DSL. y todo está bien y vuelve a la normalidad entonces.

10

Es un problema de conexión. Lo arreglé desinstalando mi bloqueador de anuncios ...

1

Comprueba el archivo/etc/hosts. Muchas roms personalizadas tienen entradas adblock ...