Ich versuche, Interstitial-Anzeigen zu meinem Spiel hinzuzufügen. Es ist auf einem Rahmen aus einem Buch gebaut. Der Konstruktor ist:Warum bekomme ich 'setAdListener muss auf dem Haupt-UI-Thread aufgerufen werden', wenn ich es auf dem UI-Thread ausführen
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());
}
Allerdings habe ich den Fehler:
java.lang.IllegalStateException: setAdListener must be called on the main UI thread.
Können Sie mir sagen, warum ich diese Störung erhalte und wie man es beheben, bitte?
Das ist brilliant, danke. Es klappt. Trotzdem würde ich gerne wissen, warum ich den Fehler bekommen habe, den ich bekommen habe. –
Das ist ziemlich alt, aber ich war einfach in der gleichen Situation. Wie sich herausstellte, musste ich den neuen AdRequest.Builder() verschieben; innerhalb der Runnable, um es zu lösen. – Pierre