如何解决Android游戏中<filename unknown =“”>:0'中的'RequestRewardBasedVideo()[0x00000]错误”

时间:2019-01-05 15:12:20

标签: c# unity3d admob

我正在统一构建游戏,所以没有构建错误, 在我的android设备上启动游戏后,它运行良好,直到我加载了admob,然后游戏冻结了。 Logcat给出了下一个错误:

https://prnt.sc/m3dfk0

private BannerView bannerView;
private InterstitialAd interstitial;
private RewardBasedVideoAd rewardBasedVideo;
public GameState gs;
private float deltaTime = 0.0f;
private static string outputMessage = string.Empty;

public static string OutputMessage
{
    set { outputMessage = value; }
}

public void Start()
{

    string appId = "ca-app-pub-3940256099942544/1712485313";

    MobileAds.SetiOSAppPauseOnBackground(true);

    // Initialize the Google Mobile Ads SDK.
    MobileAds.Initialize(appId);

    // Get singleton reward based video ad reference.
    this.rewardBasedVideo = RewardBasedVideoAd.Instance;

    // RewardBasedVideoAd is a singleton, so handlers should only be registered once.
    this.rewardBasedVideo.OnAdLoaded += this.HandleRewardBasedVideoLoaded;
    this.rewardBasedVideo.OnAdFailedToLoad += this.HandleRewardBasedVideoFailedToLoad;
    this.rewardBasedVideo.OnAdOpening += this.HandleRewardBasedVideoOpened;
    this.rewardBasedVideo.OnAdStarted += this.HandleRewardBasedVideoStarted;
    this.rewardBasedVideo.OnAdRewarded += this.HandleRewardBasedVideoRewarded;
    this.rewardBasedVideo.OnAdClosed += this.HandleRewardBasedVideoClosed;
    this.rewardBasedVideo.OnAdLeavingApplication += this.HandleRewardBasedVideoLeftApplication;
}

public void Update()
{
    // Calculate simple moving average for time to render screen. 0.1 factor used as smoothing
    // value.
    this.deltaTime += (Time.deltaTime - this.deltaTime) * 0.1f;
}

// Returns an ad request with custom ad targeting.
public AdRequest CreateAdRequest()
{
    return new AdRequest.Builder()
        //.AddTestDevice(AdRequest.TestDeviceSimulator)
        //.AddTestDevice("0123456789ABCDEF0123456789ABCDEF")
        .AddKeyword("game")
        .SetGender(Gender.Male)
        .SetBirthday(new DateTime(1985, 1, 1))
        .TagForChildDirectedTreatment(false)
        .AddExtra("color_bg", "9B30FF")
        .Build();
}

public void RequestBanner()
{
    string adUnitId = "ca-app-pub-3940256099942544/1712485313";

    // Clean up banner ad before creating a new one.
    if (this.bannerView != null)
    {
        this.bannerView.Destroy();
    }

    // Create a 320x50 banner at the top of the screen.
    this.bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Top);

    // Register for ad events.
    this.bannerView.OnAdLoaded += this.HandleAdLoaded;
    this.bannerView.OnAdFailedToLoad += this.HandleAdFailedToLoad;
    this.bannerView.OnAdOpening += this.HandleAdOpened;
    this.bannerView.OnAdClosed += this.HandleAdClosed;
    this.bannerView.OnAdLeavingApplication += this.HandleAdLeftApplication;

    // Load a banner ad.
    this.bannerView.LoadAd(this.CreateAdRequest());
}

public void RequestInterstitial()
{ 
    string adUnitId = "ca-app-pub-3940256099942544/1712485313";

    // Clean up interstitial ad before creating a new one.
    if (this.interstitial != null)
    {
        this.interstitial.Destroy();
    }

    // Create an interstitial.
    this.interstitial = new InterstitialAd(adUnitId);

    // Register for ad events.
    this.interstitial.OnAdLoaded += this.HandleInterstitialLoaded;
    this.interstitial.OnAdFailedToLoad += this.HandleInterstitialFailedToLoad;
    this.interstitial.OnAdOpening += this.HandleInterstitialOpened;
    this.interstitial.OnAdClosed += this.HandleInterstitialClosed;
    this.interstitial.OnAdLeavingApplication += this.HandleInterstitialLeftApplication;

    // Load an interstitial ad.
    this.interstitial.LoadAd(this.CreateAdRequest());
}

public void RequestRewardBasedVideo()
{
    string adUnitId = "ca-app-pub-3940256099942544/1712485313";

    this.rewardBasedVideo.LoadAd(this.CreateAdRequest(), adUnitId);
}

public void ShowInterstitial()
{
    if (this.interstitial.IsLoaded())
    {
        this.interstitial.Show();
    }
    else
    {
        MonoBehaviour.print("Interstitial is not ready yet");
    }
}

public void ShowRewardBasedVideo()
{
    if (this.rewardBasedVideo.IsLoaded())
    {
        this.rewardBasedVideo.Show();
    }
    else
    {
        MonoBehaviour.print("Reward based video ad is not ready yet");
    }
}

#region Banner callback handlers

public void HandleAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: " + args.Message);
}

public void HandleAdOpened(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpened event received");
}

public void HandleAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

public void HandleAdLeftApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLeftApplication event received");
}

#endregion

#region Interstitial callback handlers

public void HandleInterstitialLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialLoaded event received");
}

public void HandleInterstitialFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print(
        "HandleInterstitialFailedToLoad event received with message: " + args.Message);
}

public void HandleInterstitialOpened(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialOpened event received");
}

public void HandleInterstitialClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialClosed event received");
}

public void HandleInterstitialLeftApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialLeftApplication event received");
}

#endregion

#region RewardBasedVideo callback handlers

public void HandleRewardBasedVideoLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleRewardBasedVideoLoaded event received");
}

public void HandleRewardBasedVideoFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print(
        "HandleRewardBasedVideoFailedToLoad event received with message: " + args.Message);
}

public void HandleRewardBasedVideoOpened(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleRewardBasedVideoOpened event received");
}

public void HandleRewardBasedVideoStarted(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleRewardBasedVideoStarted event received");
}

public void HandleRewardBasedVideoClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleRewardBasedVideoClosed event received");
}

public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{
    gs.RemoveTimerss();
}

public void HandleRewardBasedVideoLeftApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleRewardBasedVideoLeftApplication event received");
}

所以我首先用以下方式加载广告: admobManager.RequestRewardBasedVideo();

在按下按钮后: admobManager.ShowRewardBasedVideo();

在负载一致的情况下,我得到了虚拟日志: http://prntscr.com/m3dzdf

在移动部分,logcat不会在加载任何内容时提供任何日志记录。

0 个答案:

没有答案