AFMA_ReceiveMessage не определено
Я интегрирую AdMob в мое приложение для Android. Код для добавления части довольно прост и почти прямо из руководства разработчика Google. Я пытаюсь реализовать Interstitials. Объявления показываются нормально, но я получаю это в stackTrace красным цветом:
E / Ads (21443): JS: Uncaught ReferenceError: AFMA_ReceiveMessage не определено (null:1)
Может кто-нибудь сказать мне, что это значит? Можно ли выпустить приложение с этой ошибкой, так как оно не приводит к сбою приложения?
РЕДАКТИРОВАТЬ: я только что заметил, что эта ошибка получена для одного объявления, а не для другого (пока только два объявления в моей стране). Так что, возможно, это просто чего-то не хватает в конце Publisher.
6 ответов
Если это тестовое устройство, вы должны позвонить 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);
Вам нужно будет создать тему для загрузки рекламы.
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();
}
});
У меня была такая же проблема, пока я не добавлю
compile 'com.google.android.gms:play-services:7.8.0'
в build.gradle. Это решит проблему для меня.
Я получил эту конкретную ошибку в 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();
}
});
Убедитесь, что вы создали отдельный идентификатор рекламного блока для запроса промежуточной рекламы. Если вы используете рекламный идентификатор рекламного блока для промежуточного запроса, возникает точно такая же ошибка. До этого все работало, но в какой-то момент они изменились.
Я получил эту ошибку, когда не полностью настроил свой идентификатор рекламного блока (я создал его, но не нажал кнопку "Готово"). После завершения настройки на apps.admob.com ошибка исчезла.