当前位置: 首页 > 知识库问答 >
问题:

如何等待AdMob奖励视频正确加载

郝承悦
2023-03-14

我试图在我的Android应用程序中使用AdMob奖励广告。为了包括它在引用的应用程序,我需要等待奖励的视频加载后,用户点击按钮。我在下面的整个代码中都在尝试它,但我得到了错误:

IllegalStateException:必须在主UI线程上调用showAd。

当点击臀部时:

b_r_ans.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        if(isSomBotaoLigado() && loaded[0])
            soundPool.play(soundID, MyApplication.getVolumeBotao(), MyApplication.getVolumeBotao(), 1, 0, 1f);

        Toast.makeText(MyApplication.getAppContext(),carregando_rv, Toast.LENGTH_LONG).show();




        Thread t_rv = new Thread(new Runnable() {
            public void run() {
                while(!rv_loaded){
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }


            }
        });
        t_rv.start();

        try {
            t_rv.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        mRewardedVideoAd.show();

    }
});

重写了侦听器:

@Override
    public void onRewardedVideoAdLoaded() {
        Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
        rv_loaded = true;
    }

使用mRewardedVideoad.isLoaded()函数也会触发同样的问题。

共有1个答案

许寒
2023-03-14

似乎您正在从另一个线程调用show,因此我将尝试强制其在主线程上执行,如下所示:

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(Looper.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {
         if (mRewardedVideoAd.isLoaded()) {
             mRewardedVideoAd.show();
    }
};
mainHandler.post(myRunnable);
 类似资料:
  • 我在Unity3d中显示admob插件的奖励视频广告时遇到问题。首先,这是我的脚本: 我用一个按钮运行RequestRewardVideo()方法,但什么也没发生。我尝试运行按钮中的和中的方法,但只显示了视频1/3次。。。这个怎么了? 提前感谢

  • 我正在尝试使用AdMob显示奖励视频广告。我添加了2个广告网络(AdColony、InMobi)并提供了所有必需的详细信息,如帐户ID等。 我还下载并编译了所需的网络SDK和适配器。 广告代码: 问题是我总是从AdMob那里得到同样的回应: 获取广告回复时出现问题。错误代码:0 有什么办法解决这个问题吗? 更新: 我通过从AdRequest中删除“addTestDevice()”克服了加载广告的问

  • 我最近根据本教程实现了admob(7.9.1版)奖励视频:https://firebase.google.com/docs/admob/ios/rewarded-video 但我无法使用此功能编译我的应用程序。我收到以下错误: 我以前做过横幅广告和插页广告,效果很好。 有什么建议吗?

  • 我正在尝试使用Admob在我的android应用程序中显示奖励视频广告。如果我用谷歌示例广告单元ID运行应用程序,它工作得很好,但如果我将其更改为我的奖励广告单元ID,则不会加载广告。

  • 我的应用程序由两个活动组成:MainActivity和RoomOne,当用户按下按钮时,会显示奖励视频广告,作为奖励,用户可以访问RoomOne活动,但是当用户被带到RoomOne活动时,当他返回MainActivity时,他不能再去RoomOne,因为奖励视频广告拒绝显示,所以是这样的: 1用户启动应用程序。 2-User想要访问RoomOne,请按一个按钮。 3奖励视频广告成功显示,当它完成广

  • 最近我收到了Admob发来的以下邮件: 让用户参与奖励视频并最大化内容价值 本周在GDC上,我们从AdWords推出了谷歌的视频广告需求,让所有AdMob开发者都可以访问。现在有了AdMob rewarded mediation,除了选择第三方资源之外,您还可以访问Google demand(谷歌需求),从而为更广泛的货币化选择打开了大门。如果您已经在AdMob奖励中介,AdMob奖励视频广告默认