AdMob RewardBasedVideoAd,奖励视频关闭后应用程序崩溃(Unity3dd,Android)

ha5z0ras  于 2023-04-21  发布在  Android
关注(0)|答案(3)|浏览(162)

我在一个Android游戏工作,我想添加AdMob广告到我的游戏。我已经添加了横幅和间隙视图,但在RewardBasedVideoAd特别是OnAdRewarded事件的问题,当用户关闭视频返回到游戏,以赚取他的奖励游戏崩溃立即。
经过多次尝试,我发现代码崩溃的游戏,gameObject.SetActive(true)gameObject.SetActive(false),是问题,当我停用游戏面板UI和积极的奖励面板UI游戏崩溃立即.
我该如何解决这个问题?为什么当我使用gameObject.SetActive时游戏会崩溃?

导致app崩溃的代码

public void HandleOnAdRewarded(object sender, EventArgs args)
{
   gamePanel.SetActive(false);
   rewardPanel.SetActive(true);
}

申请奖励代码

public void RequestReward()
{
   AdRequest request = new AdRequest().Builder().Build();
   this.rewardAd.LoadAd(request, rewardAdId);

   rewardAd.OnAdLoaded += this.HandleOnRewardAdLoaded;
   rewardAd.OnAdRewarded += this.HandleOnAdRewarded;
   rewardAd.OnAdClosed += this.HandleOnRewardAdClosed;
}

处理程序

public void HandleOnRewardAdLoaded(object sender, EventArgs args)
{
   if(rewardAd.IsLoaded())
   {
       rewardAd.Show();
   }
}

public void HandleOnAdRewarded(object sender, EventArgs args)
{
    gamePanel.SetActive(false);
    rewardPanel.SetActive(true);
}

public HandleOnRewardAdClosed(object sender, EventArgs args)
{
    rewardAd.OnAdLoaded -= this.HandleOnRewardAdLoaded;
    rewardAd.OnAdRewarded -= this.HandleOnAdRewarded;
    rewardAd.OnAdClosed -= this.HandleOnRewardAdClosed;
}
lbsnaicq

lbsnaicq1#

任何人都有这个问题
问题原因是TextMesh Pro

只需卸载

icnyk63a

icnyk63a2#

我有同样的问题,在我的情况下,我正在改变UI和发送请求到服务器后,OnAdClosed和OnRewardEarned,所以崩溃发生时,我关闭广告。
我认为原因是这些更改实际上在返回到应用程序之前应用,并且在此期间应用程序暂停。所以我通过使用bool来修复它,以便知道如果OnAdClosed和OnRewardEarned被调用,则更改UI并在OnApplicationPause函数中发送请求,如下面的代码。
注意:我在OnAdClosed和OnRewardEarned中发送分析事件,它们工作正常,没有任何问题或崩溃。

private void OnApplicationPause(bool isPaused)
    {
        if (!isPaused)
        {
            if (_isRewardEarned)
            {
                _onEarnedRewardEvent?.Invoke();
            }
            if (_isRewardedAdClosed)
            {
                _onRewardedAdClosedEvent?.Invoke();
                InitializeNextRewardedAd();
            }
        }
    }
s4chpxco

s4chpxco3#

有一个更好的解决这个问题的方法,而不是避免TextMeshPro,如下所示:Game crashes after showing intersitial and rewarded ads
使用https://github.com/PimDeWitte/UnityMainThreadDispatcher调用主线程相关代码。

相关问题