###前提・実現したいこと
Unityで書き出したiOS用プロジェクトをiPhone6sの実機でテストをしたのですが、動画リワード広告を閉じようと×ボタンを押そうとした時にクラッシュしてアプリが落ちてしまいます。
Xcode側でフレームワークが足りているかを確認したり、Build Settingがおかしくないかどうかなど、手は尽くしましたが解決には至りませんでした。
【追記】動画広告を閉じた時にXcode側で発生したエラーメッセージ
il2cpp::vm::Exception::Raise:
少ない情報ですが、解決策がありましたらよろしくお願いします。
###コード
C#
1 void Awake() 2 { 3 AdMobManager.bannerView.Destroy(); 4 5 pushAdFlag = false; 6 adCloseFlag = false; 7 8 RequestRewardBasedVideo(); 9 } 10 11 void Update() 12 { 13 if (pushAdFlag && adCloseFlag) 14 { 15 /* ここで報酬受け渡し処理 */ 16 17 pushAdFlag = false; 18 adCloseFlag = false; 19 } 20 } 21 22 private void RequestRewardBasedVideo() 23 { 24 string adUnitId = ios_Reward; 25 26 rewardBasedVideo = RewardBasedVideoAd.Instance; 27 28 AdRequest request = new AdRequest.Builder() 29 .AddTestDevice(AdRequest.TestDeviceSimulator) 30 .Build(); 31 32 rewardBasedVideo.LoadAd(request, adUnitId); 33 34 if (!rewardBasedEventHandlersSet) 35 { 36 // has rewarded the user. 37 rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded; 38 39 rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoRewardedClosed; 40 41 rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoRewardedFailed; 42 43 rewardBasedEventHandlersSet = true; 44 } 45 } 46 47 // 動画再生 48 public void pushAds() 49 { 50 if (rewardBasedVideo.IsLoaded()) 51 { 52 rewardBasedVideo.Show(); 53 } 54 } 55 56 public void HandleRewardBasedVideoRewardedFailed(object sender, AdFailedToLoadEventArgs args) 57 { 58 Debug.Log ("動画を読み込めませんでした。"); 59 60 StartCoroutine (WaitConnectReward()); 61 62 print("HandleRewardBasedVideoFailedToLoad event received with message: " + args.Message); 63 } 64 65 public void HandleRewardBasedVideoRewardedClosed(object sender, System.EventArgs args) 66 { 67 //ボタンの状態を変更する 68 setButtonsEnabled(true, true, true, true, false, false); 69 70 RequestRewardBasedVideo (); 71 72 adCloseFlag = true; 73 74 print("HandleRewardBasedVideoClosed event received"); 75 } 76 77 public void HandleRewardBasedVideoRewarded(object sender, Reward args) 78 { 79 string type = args.Type; 80 double amount = args.Amount; 81 print("HandleRewardBasedVideoRewarded event received for " + amount.ToString() + " " + type); 82 83 //ボタンの状態を変更する 84 setButtonsEnabled(false, false, false, true, false, false); 85 86 pushAdFlag = true; 87 } 88 89 // ロードに失敗した場合、15秒待ってから再ロードをする 90 IEnumerator WaitConnectReward() 91 { 92 while (true) 93 { 94 yield return new WaitForSeconds(15.0f); 95 96 // 通信ができない場合は、リロードしない 97 if (Application.internetReachability != NetworkReachability.NotReachable) 98 { 99 RequestRewardBasedVideo(); 100 break; 101 } 102 } 103 } 104
###補足情報
開発ツール:Unity 2017.1.0f3
テスト用実機:iPhone6s
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/17 10:30
2017/08/17 10:41