java - 当我尝试从 Activity 类调用函数时崩溃

标签 java android illegalstateexception

好的,所以我遇到了一个非常奇怪的情况。我正在尝试在我的应用程序中设置广告,但还没有奏效,我也不完全确定原因。我一直遇到这个错误。我正在从另一个有点断开连接的类中的 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/

相关文章:

android - 屏幕关闭时 DialogFragment IllegalStateException

android - View 无法锚定到父 CoordinatorLayout

java - hibernate JPA : mappedBy reference exception

android - 在 android 中,在 recyclerView 中准确显示按钮所在的弹出窗口

java - 正则表达式提取图像链接

javascript - Cordova:设备就绪不显示

android - 如何将 Yaw、Roll 和 Pitch 值转换为 (x,y) 坐标?

java - 非法状态异常 : Already Connected while connecting to a HttpURL

java - 如何设置透明背景?

java - 从 Java 客户端程序传递远程对象的构造函数参数