我正在我的Android应用中集成AdMob。添加部分的代码非常简单,几乎可以直接来自Google Developer's Guide。我正在尝试实施插页式广告。广告显示正常,但我在stackTrace中以红色显示:
E / Ads(21443):JS:未捕获的ReferenceError:未定义AFMA_ReceiveMessage(null:1)
谁能告诉我这是什么意思?是否可以使用此错误释放应用程序,因为它不会使应用程序崩溃?
编辑:我刚刚注意到这个错误是针对特定广告收到的,而不是针对其他广告(目前只在我的国家/地区获得两个广告)。所以也许这只是Publisher端缺少的东西。
答案 0 :(得分:9)
如果这是测试设备,您应该致电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);
答案 1 :(得分:3)
您需要创建一个线程来加载广告。
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();
}
});
答案 2 :(得分:1)
在添加
之前,我遇到了同样的问题compile 'com.google.android.gms:play-services:7.8.0'
在build.gradle中。这解决了我的问题。
答案 3 :(得分:1)
确保您为插页式广告请求创建了单独的广告单元ID。如果您使用横幅广告单元ID进行插页式广告请求,则会发生同样的错误。它在那之前就已经开始工作了,但是他们已经在某个时候改变了它。
答案 4 :(得分:1)
我在stacktrace中遇到了这个特殊错误,因为我的adview没有使用广告监听器。
希望它有所帮助。
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();
}
});
答案 5 :(得分:-1)
当我没有完全设置我的广告单元ID时,我收到了此错误(我创建了它但未按下“完成”按钮)。在apps.admob.com上完成设置后,错误消失了。