インタースティシャル広告をゲームに追加しようとしています。これは、本のフレームワーク上に構築されています。コンストラクタは次のとおりです。UIスレッドで「setAdListenerをメインUIスレッドで呼び出す必要があります」というメッセージが表示される
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