0
我正在尝试向我的游戏添加插页式广告。它建立在一本书的框架之上。构造函数是:为什么当我在UI线程上运行它时,必须在主UI线程上调用'setAdListener'
public GameScreen(Game game) {
super(game);
world = new World();
clueLetters = new String[10];
levelNo = SettingsObject.levelUnlock;
getWord();
interstitialAd = new InterstitialAd(AndroidGame.context);
interstitialAd.setAdUnitId("ca-app-pub-1861496496821617/");
//Create an ad request
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
AndroidGame.activityReference.runOnUiThread(new Runnable() {
@Override
public void run()
{
// Set AdListener
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
}
});
}
});
Looper.prepare();
interstitialAd.loadAd(adRequestBuilder.build());
}
但是,我得到的错误:
java.lang.IllegalStateException: setAdListener must be called on the main UI thread.
你能告诉我为什么我收到的错误,以及如何解决它,好吗?
这太棒了,谢谢。有用。但是,我仍然想知道为什么我得到了我得到的错误。 –
这是相当古老的,但我只是发生在相同的情况。事实证明,我必须移动新的AdRequest.Builder();在Runnable内部命令解决它。 – Pierre