在死线程Google Admob Rewarded视频上向处理程序发送消息

时间:2016-06-06 04:13:12

标签: android admob android-handler

我在完成整个视频后从谷歌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.

2 个答案:

答案 0 :(得分:0)

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

因此,请检查后台线程中是否有任何UI元素正在更新。

答案 1 :(得分:0)

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

简单的方法是不使用

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

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