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

AdMob RewardBasedVideoAd, App crash after reward video closed (Unity3dd, Android)

我正在开发一款 Android 游戏,我想将 AdMob 广告添加到我的游戏中。我已经添加了横幅和插屏视图,但是 RewardBasedVideoAd 中的问题特别是在 OnAdRewarded 事件上,当用户关闭视频 return 到游戏以获得他的奖励游戏立即崩溃。

经过多次尝试,我发现了导致游戏崩溃的代码,gameObject.SetActive(true)gameObject.SetActive(false),当我停用游戏面板 UI 和活动奖励面板 UI 游戏立即崩溃。

我该如何解决?为什么我使用 gameObject.SetActive 时游戏会崩溃?

导致应用崩溃的代码

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;
}

任何有此问题的人

问题的原因是TextMesh Pro

只需卸载它

我遇到了同样的问题,在我的情况下,我正在更改 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();
            }
        }
    }