【问题标题】:sending message to a Handler on a dead thread Google Admob Rewarded video在死线程上向处理程序发送消息 Google Admob 奖励视频
【发布时间】:2016-10-05 14:09:42
【问题描述】:

完成整个视频后,当我从 Google Admob 的奖励视频屏幕返回我的活动时,我得到了这个堆栈跟踪。它只是警告,而不是崩溃。 观看视频后调用onRewardedVideoAdClosed()方法,但不调用onRewarded()。有什么帮助吗??

  Handler (android.os.Handler) {5451758} sending message to a Handler on a dead thread
    06-06 09:29:00.378: W/MessageQueue(10743): java.lang.IllegalStateException: Handler (android.os.Handler) {5451758} sending message to a Handler on a dead thread
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:543)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Handler.enqueueMessage(Handler.java:631)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Handler.sendMessageAtTime(Handler.java:600)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Handler.sendMessageDelayed(Handler.java:570)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Handler.sendEmptyMessageDelayed(Handler.java:534)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Handler.sendEmptyMessage(Handler.java:519)
    06-06 09:29:00.378: W/MessageQueue(10743):  at jm.c(:com.google.android.gms.DynamiteModulesA:2142)
    06-06 09:29:00.378: W/MessageQueue(10743):  at ahf.f(:com.google.android.gms.DynamiteModulesA:638)
    06-06 09:29:00.378: W/MessageQueue(10743):  at avj.b(:com.google.android.gms.DynamiteModulesA:1343)
    06-06 09:29:00.378: W/MessageQueue(10743):  at avt.s(:com.google.android.gms.DynamiteModulesA:79)
    06-06 09:29:00.378: W/MessageQueue(10743):  at avl.onPageFinished(:com.google.android.gms.DynamiteModulesA:381)
    06-06 09:29:00.378: W/MessageQueue(10743):  at com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished(WebViewContentsClientAdapter.java:524)
    06-06 09:29:00.378: W/MessageQueue(10743):  at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:188)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Handler.dispatchMessage(Handler.java:102)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.os.Looper.loop(Looper.java:148)
    06-06 09:29:00.378: W/MessageQueue(10743):  at android.app.ActivityThread.main(ActivityThread.java:5443)
    06-06 09:29:00.378: W/MessageQueue(10743):  at java.lang.reflect.Method.invoke(Native Method)
    06-06 09:29:00.378: W/MessageQueue(10743):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
    06-06 09:29:00.378: W/MessageQueue(10743):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    06-06 09:29:00.378: W/ExoPlayerImplInternal(10743): Sent message(1) after release. Message ignored.

【问题讨论】:

    标签: android admob android-handler


    【解决方案1】:

    我在 2 个活动中使用广告奖励时遇到了同样的错误。 我搜索并发现 http://qaru.site/questions/1677496/admob-android-rewarded-video-not-showing-sometimes

    最简单的方法是不使用

     mRewardedVideoAd.destroy(this);
    or 
     mRewardedVideoAd.destroy(getApplicationContext());
    

    在onDestroy() 即使在官方文档中写到您必须....

    【讨论】:

    • 奇怪...这不会泄露广告吗?
    【解决方案2】:

    最近我正在使用 Google AdMob Reward 视频。显示奖励视频后,我的应用程序崩溃了。 实际原因是,“onVideoClosed”回调是从后台线程调用的,而我错误地从后台线程更新了 UI 元素,这必须通过主线程完成。

    所以,请检查是否有任何 UI 元素正在以任何方式从后台线程更新。

    【讨论】:

      猜你喜欢
      • 2013-06-18
      • 2013-12-02
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多