2012-05-23 19 views
5

Próbuję dodać reklamy AdMob do mojego android aplikacji, ale gdy jestem otwierając działalność, która ma wyświetlać reklamę otrzymuję ten błąd:Uncaught ReferenceError: AFMA_getSdkConstants nie jest zdefiniowana

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

Nie mogę znaleźć niczego na temat tego problemu w Google lub w innym miejscu i nie sądzę, że robię coś złego.

Tylko w przypadku, tutaj jest mój xml fragment, który ma pokazać reklamę:

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

Oczywiście wyjąłem wszystkie - moim zdaniem - niepotrzebnego kodu do tego problemu, ale jeśli jest to konieczne, aby zobaczyć opowiem to również tutaj.

Wyjąłem również mój identyfikator AdMob UnitID, prawdopodobnie to wymyśliłeś, ale piszę to tutaj, aby brakujący UnitId nie był odpowiedzią.

My Manifest ma prawo uprawnienia wymienione:
android.permission.ACCESS_NETWORK_STATE
android.permission.INTERNET

i mam również AdActivity dodany z prawem configChanges

+0

Z logów wygląda na 6.0.1. Zakładam, że masz wszystkie 7 configChanges AdMob określa, czy twoja aplikacja działa. Czy na pewno urządzenie ma połączenie z internetem? –

+0

Tak, urządzenie jest podłączone do mojego domowego Wi-Fi, a tutaj są moje konfiguracje: android: configChanges = "keyboard | keyboardHidden | orientation | screenLayout | uiMode | screenSize | smallestScreenSize" – dr3minem

+0

hmm, jestem zakłopotany. Czy to urządzenie jest specyficzne? Czy działa na emulatorach? –

Odpowiedz

10

miałem ten błąd też i rozwiązane przez załadowanie reklamy w osobnym wątku (w ICS nie można wykonywać operacji sieciowych w głównym wątku)

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

Wow, dziękuję, nie oczekiwałeś już odpowiedzi, a to było krótkie, proste i naprawione! Dzięki! – dr3minem

+1

To zdecydowanie nie jest odpowiedź. To nie naprawiło dokładnie tego samego problemu. – AutoM8R

+0

Też nie naprawiłem. Najwyraźniej jest to znany problem z niektórymi urządzeniami lub może po prostu 4.0.4 ICS. Ten sam błąd w moim HTC Desire HD. Działa dobrze w emulatorze na moim zapasowym węźle 7. Próbowałem go zarówno z nowym wątkiem, jak i bez niego. –

2

Miałem ten problem podczas przechodzenia między sieciami i pozostawienia uruchomionego emulatora.

Odkryłem, że po prostu ponowne uruchomienie emulatora po podłączeniu do nowej sieci rozwiązało problem.

3

Po prostu sprawdź wszystkie swoje połączenia internetowe. Mój laptop miał internet, a telefon nie. Próbowałem połączyć się z serwerem internetowym na moim laptopie i działało dobrze. więc po wypróbowaniu stosów z telefonem, zrestartowałem mój router DSL. i wszystko jest w porządku, a potem wróci do normy.

10

To jest problem z połączeniem. Naprawiłem to, odinstalowując mój bloker reklam ...

1

Sprawdź plik/etc/hosts. Wiele niestandardowych dysków ma wpisy adblock ...

Powiązane problemy