这可能不是完整的答案,但是很难说出正确的答案,因为上面的代码尚不清楚。您没有显示在哪里使用GameOver(),但我认为您在错误的位置调用了它,我认为您在任何后台线程中都调用了它,因为在GameOver内部调用
interstitial.isLoaded()会导致问题。就像stacktrace所说的那样,在主ui线程中调用它。例如,请在您的GameOver()中调用此函数:
runonUiThread(new Runnable() { @Override public void run() { if (interstitial.isLoaded()) { interstitial.show(); } } });可能您必须使用活动引用来调用它,这取决于您调用GameOver()的位置:
mYourActivity.runonUiThread(new Runnable() { @Override public void run() { if (interstitial.isLoaded()) { interstitial.show(); } } });


