01-19 07:32:54.440: E/AndroidRuntime(13651): FATAL EXCEPTION: Thread-49013
01-19 07:32:54.440: E/AndroidRuntime(13651): java.lang.IllegalStateException: setAdListener must be called on the main UI thread.
01-19 07:32:54.440: E/AndroidRuntime(13651): at azy.b(SourceFile:174)
01-19 07:32:54.440: E/AndroidRuntime(13651): at xq.a(SourceFile:511)
01-19 07:32:54.440: E/AndroidRuntime(13651): at ya.onTransact(SourceFile:105)
01-19 07:32:54.440: E/AndroidRuntime(13651): at android.os.Binder.transact(Binder.java:326)
01-19 07:32:54.440: E/AndroidRuntime(13651): at com.google.android.gms.internal.ac$a$a.a(Unknown Source)
01-19 07:32:54.440: E/AndroidRuntime(13651): at com.google.android.gms.ads.InterstitialAd.c(Unknown Source)
01-19 07:32:54.440: E/AndroidRuntime(13651): at com.google.android.gms.ads.InterstitialAd.loadAd(Unknown Source)
01-19 07:32:54.440: E/AndroidRuntime(13651): at net.timepieceent.Pong.DroidPongActivity.loadAndDisplayAd(DroidPongActivity.java:65)
01-19 07:32:54.440: E/AndroidRuntime(13651): at net.timepieceent.Pong.MainMenu.stateChange(MainMenu.java:363)
01-19 07:32:54.440: E/AndroidRuntime(13651): at net.timepieceent.Pong.MainMenu.buttonCheck(MainMenu.java:219)
01-19 07:32:54.440: E/AndroidRuntime(13651): at net.timepieceent.Pong.MainMenu.update(MainMenu.java:151)
01-19 07:32:54.440: E/AndroidRuntime(13651): at com.badlogic.framework.AndroidFastRenderView.run(AndroidFastRenderView.java:48)
01-19 07:32:54.440: E/AndroidRuntime(13651): at java.lang.Thread.run(Thread.java:856)
有没有人知道我为什么会收到这个错误?我觉得这实际上是我遇到的问题,而不是广告。请帮忙。非常感谢你。
编辑:我甚至已经把谷歌播放服务库拿出来了,我仍然收到这个错误。我不明白为什么它会说setAdListener,因为我根本就没有调用它。编辑:我的程序毫无疑问是搞笑的。我已经删除了整个DroidPongActivity,它应该使应用程序不运行,但它仍然做同样的事情。这很奇怪。
编辑:谢谢大家。在修复项目后,我应用了Runonuithread解决方案。 Eclipse没有安装新的代码更改,所以我将项目复制到另一个文件夹,在eclipse中将其删除并重新导入。之后一切都很花哨。我会结束讨论,但我不知道该怎么做。
答案 0 :(得分:1)
无论你做什么,错误都是说应该在UI线程上完成。
runOnUiThread(new Runnable() {
@Override
public void run() {
// your code here
}
});
错误是您活动的第65行。将该(以及可能类似的代码)移动到run()方法中。
答案 1 :(得分:0)
显然,你在另一个线程中调用主UI方法,即使有引用,也不能直接从另一个线程调用UI相关方法。
您可以在下面查看如何与UI线程进行通信的链接 https://developer.android.com/training/multiple-threads/communicate-ui.html
答案 2 :(得分:0)
从您的logcat错误看来,您似乎正在尝试从UI线程做一些事情,这必须在UI线程上完成。这样做,
Runnable r = new Runnable () {
@Override
public void run() {
// Do Here whatever you are trying to do
}
}
runOnUiThread(r);
希望这能解决您的问题,如果没有,请告诉我。