【Unity】AdMobのリワード広告閉じたらクラッシュする現象の直し方

Unity-AdMobがクラッシュする現象の解決方法 Unity
スポンサーリンク

タイトル通りです。
エミュレータでスマホアプリの動作確認をしていて、リワード広告を再生し終わって閉じるときになぜか毎回クラッシュしていました。
対処法が分からず結構沼っていたのですが、とあるツイートのおかげで無事直すことができました!
広告の実装って結構ハマってしまう人も多そうなので、今回の事象の解決方法について書いておこうと思います。

解決のきっかけになったツイート

こちらのPopさんのツイートです。
私のとはバージョンが少し違うのですが(Unity:2021.3.5f1、AdMob:v7.2.0)この手順を実行したところクラッシュしなくなりました。

手順

手順といってもだいたい先ほどのツイートの通りです。(⑥、⑦はやってません)

1.Mobile Ads Unity プラグインをダウンロード

最新のMobile Ads Unity プラグインをダウンロードします。
Mobile Ads SDKのスタートガイドにあるリンクからUnityパッケージをダウンロードしてきました。

2.Assets/GoogleMobileAdsフォルダ削除

Unity起動前Assets/GoogleMobileAdsフォルダを削除します。

3.Unityを起動してパッケージをインポート

Unityを起動します。
GoogleMobileAdsフォルダを消した影響でセーフモードで起動するかどうか聞かれます。
私は最初セーフモードで起動しましたが、その状態だとパッケージのインポートができないようだったので結局解除しました。

パッケージのインポートはAssets > Import Package > Custom Packageを選択し、1でダウンロードしたパッケージをインポートします。
インポート後はUnityを再起動します。
途中でダイアログが出てくると思いますが、これはYesやApplyで進めます。

4.Resolveする

再起動後、まずはAssets > External Dependency Manager > Android Resolver > Force Resolveを実行します。
次にAssets > External Dependency Manager > Android Resolver > Resolveを実行します。

5.アプリIDを設定

Assets/GoogleMobileAdsを削除したのでアプリIDを再設定する必要があります。
Assets > Google Mobile Ads > settingsで設定します。
AndroidManifest.xmlの方もmeta-dataの設定忘れが無いか確認しておきましょう。

6.ビルド

ビルドします。
エミュレータで確認してみると、リワード広告後の処理が正常に動いていました。

まとめ:GoogleMobileAdsを入れ直すと改善されるかも

今回の件、結局GoogleMobileAdsを入れ直すのが正解だったっぽいですね。
やっかいだったのが、Unityエディタ上で動かしている時はエラーが出なかったんですよね…。
エミュレータを使って初めて発生したので発見が遅れました。
私の場合はこれで直ったので良かったですが、他にもSetActiveでエラーになるパターン(【Unity iOS】AdMob動画リワード広告を閉じた時にクラッシュする)もあるようなので全てのエラーがこれで対処できるかは分かりません。
結構面倒ですね…。

コメント

タイトルとURLをコピーしました