2015-11-25 3 views
1

У меня есть два вида рекламы: баннер и интерстициальный. Первый работает очень хорошо, но когда я хочу отображать объявление межстраничного объявления, когда я нажал кнопку «Назад» (но мы не заботимся о кнопке), перед закрытием моего приложения. Но мое интерстициальное объявление не работает, и мое приложение закрывается с этой ошибкой в ​​журнале:Interstitial Admob не работает: AFMA_ReceiveMessage не определен

E/Ads(20984): JS: Uncaught ReferenceError: AFMA_ReceiveMessage is not defined (:1) 

Я не знаю, что значит эта ошибка. Я просматривал интернет, и это может происходить из моего интернет-соединения. Мой Wi-Fi? Или это может произойти от Admob?

Должен ли я попытаться в другом районе с лучшей связью?

Спасибо, что помогли мне.

ответ

5

Мой использовать код для добавления InterstitialAdd:

public static void addInterstitialAd(final Activity context, final int id) { 
    final InterstitialAd interstitial = new InterstitialAd(context); 
    interstitial.setAdUnitId(context.getString(id)); 
    interstitial.loadAd(new AdRequest.Builder().build()); 
    interstitial.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      // Call displayInterstitial() function 
      if (interstitial.isLoaded()) { 
       interstitial.show(); 
      } 
     } 
    }); 
} 

Вы можете попробовать его, если не работает, пожалуйста, отделите новую нить:

new Thread(new Runnable() { 
     public void run() { 
     final InterstitialAd interstitial = new InterstitialAd(context); 
     interstitial.setAdUnitId(context.getString(id)); 
     interstitial.loadAd(new AdRequest.Builder().build()); 
     interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       // Call displayInterstitial() function 
       if (interstitial.isLoaded()) { 
       runOnUiThread(new Runnable() { 
       public void run() { 
        interstitial.show(); 
       } 
       });     
      } 
      } 
     }); 
    } 
    }).start(); 

Если хотите после щелчка обратно -> Admod-> close admod -> apclose:

@Override 
    public void onBackPressed() { 
     final InterstitialAd interstitial = new InterstitialAd(getApplicationContext()); 
     interstitial.setAdUnitId(getApplicationContext().getString(id)); 
     interstitial.loadAd(new AdRequest.Builder().build()); 
     interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       // Call displayInterstitial() function 
       if (interstitial.isLoaded()) { 
        interstitial.show(); 
       } 
      } 
      @Override 
      public void onAdClosed(){ 
       finish(); 
      } 
      @Override 
      public void onAdFailedToLoad(int errorCode){ 
       //you can implement continue load or finish 
      } 

     }); 
    } 
+0

Я пробовал оба. Первый не сделал ошибку в журналах. У меня даже есть «объявление открытия», но потом ничего не произошло, приложение все еще закрывается, как и раньше, без интерстициального. И второй, у меня ошибка в журналах, и мое приложение рушится. Я думаю, что я ошибаюсь в «контексте». Что я должен там написать? Я попробовал «MainAcitivy.getContext()», где есть моя функция. Но также «gridview.getContext()», который является единственным родителем в моем макете. Любая помощь @mdtuyen? – Slamingzone

+0

Я ответил ниже @mdtuyen. – Slamingzone

+1

вы добавляете только код, когда объявления закрыты или ошибка. Изменение файла манифеста ' ' – phongvan

0

Не размещайте межстраничные объявления при загрузке приложения и при выходе из приложений, поскольку межстраничные объявления должны размещаться только между страницами содержимого приложения.