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

问题描述 投票:9回答:2

在完成整个视频后,我从谷歌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
2个回答
0
投票

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

因此,请检查是否有任何UI元素通过后台线程进行更新。


0
投票

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

简单的方法是不使用

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

onDestroy(),即使在官方文件中写道,你必须....

© www.soinside.com 2019 - 2024. All rights reserved.