好的,所以我遇到了一个非常奇怪的情况。我正在尝试在我的应用程序中设置广告,但还没有奏效,我也不完全确定原因。我一直遇到这个错误。我正在从另一个有点断开连接的类中的 Activity 中调用一个函数,但我确实有一个引用。我收到此日志错误。请注意,我已将对我的广告的所有实际调用都取出来,我实际上是在调用一个空函数。
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)
有谁知道我为什么会收到此错误?我觉得这实际上是我遇到的问题,而不是广告。请帮忙。非常感谢您。
编辑:我什至已经删除了 google play 服务库,但我仍然收到此错误。我不明白为什么它会说任何有关 setAdListener 的内容,因为我根本没有调用它。
编辑:毫无疑问,我的程序出现了故障。我已经删除了整个 DroidPongActivity,这样应用程序就不会运行,但它仍然在做完全相同的事情。这很奇怪。
编辑:谢谢大家。我在修复项目后应用了 Runonuithread 解决方案。 Eclipse 没有安装新的代码更改,所以我将项目复制到另一个文件夹,在 Eclipse 中将其删除并重新导入。之后一切都很好。
我想结束这个讨论,但我不知道该怎么做。
最佳答案
无论你在做什么,错误都是说它应该在 UI 线程上完成。
runOnUiThread(new Runnable() {
@Override
public void run() {
// your code here
}
});
错误是您 Activity 的第 65 行。将它(可能还有类似的代码)移到 run() 方法中。
关于java - 当我尝试从 Activity 类调用函数时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216898/