AFMA_ReceiveMessage не определен

Я интегрирую AdMob в приложение для Android. Код для добавления части довольно прост и почти прямо из руководства Google Developer. Я пытаюсь реализовать Interstitials. Объявления показываются хорошо, но я получаю это в stackTrace в красном:

E/Ads (21443): JS: Uncaught ReferenceError: AFMA_ReceiveMessage не определен (null: 1)

Может ли кто-нибудь сказать мне, что это значит? Можно ли выпустить приложение с этой ошибкой, так как оно не разбивает приложение?

EDIT: я только заметил, что эта ошибка получена для определенного объявления, а не для другого (просто покатаем две рекламы в моей стране). Так что, возможно, это просто что-то отсутствует в конце издателя.

Ответы

Ответ 1

Если это тестовое устройство, вы должны позвонить AddTestDevice("your tester device code you can got it from logCat when you start the App"). Если нет, он должен работать нормально в рабочей среде.

Тестер:

AdView mAdView = (AdView)rootView.findViewById(R.id.adView);
Builder adRequest = new AdRequest.Builder().addTestDevice("3F166F686479332267DD2DCCD89dfwrg");
AdRequest aaa=adRequest.build();
mAdView.loadAd(aaa);

Производство:

AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

Ответ 2

Вам нужно создать поток для загрузки объявлений.

new Thread(new Runnable() {
        public void run() {
            here your code to load banner ...
        }
    }).start();

Для получения дополнительной документации перейдите к документации разработчиков по Android: http://developer.android.com/guide/components/processes-and-threads.html

Если он возвращает ошибку с просьбой использовать основной UiThread, используйте следующий код в своей деятельности

runOnUiThread(new Runnable() {
                public void run() {
                    interstitialAd.show();
                }
            });

Ответ 3

У меня была такая же проблема, пока я не добавлю

compile 'com.google.android.gms:play-services:7.8.0'

в build.gradle. Это решит проблему для меня.

Ответ 4

Убедитесь, что вы создали отдельный идентификатор рекламного блока для запроса межстраничного объявления. Если вы используете идентификатор рекламного блока баннера для межстраничного запроса, такая же ошибка возникает. Он работал до этого, но они изменили его в какой-то момент.

Ответ 5

Я получил эту конкретную ошибку в stacktrace, потому что я не использовал прослушиватель объявлений для своего объявления.

Надеюсь, это поможет кому-то.

yourAdView.setAdListener(new AdListener() {
    @Override
    public void onAdClosed() {
        super.onAdClosed();
    }

    @Override
    public void onAdFailedToLoad(int i) {
        super.onAdFailedToLoad(i);
    }

    @Override
    public void onAdLeftApplication() {
        super.onAdLeftApplication();
    }

    @Override
    public void onAdOpened() {
        super.onAdOpened();
    }

    @Override
    public void onAdLoaded() {
        super.onAdLoaded();
    }
});

Ответ 6

Я получил эту ошибку, когда не полностью настроил свой идентификатор рекламного блока (я его создал, но не нажал кнопку "done" ). После завершения настройки на apps.admob.com ошибка исчезла.