アプリケーションが落ちたときに検知できるようにFirebase Crashlyticsを導入しています。
今回はそちらで検知されたエラーの修正方法を残しておきます。

実際のエラーメッセージ
AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access$300(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e$1.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:236)
at com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
Caused by: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
... 8 more
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in <000000000000000000000
エラーの内容
実行時にJavaのクラスを見に行ったときに、そのクラスがないよ、というエラーです。
通常のアプリケーションでは、リリースミスなんかで起こるものですね。
今回は、ビルド&パッケージングをUnityに任せているのでUnityの設定を直さないといけません。
修正方法
- [編集]メニュー→[プロジェクト設定]で[Project Settings]を開く
- [プレイヤーの設定]で、[公開設定]開く
- [ビルド]の部分で[カスタムプロガードファイル]にチェックを付ける
- すぐ下に表示されたテキストファイルを書き換える(既存のものがある場合は追記する)
- [アセット]メニュー→[External Dependency Mangaer]→[Android Resolver]→[Resolve]を実行

-keep class com.google.unity.** {
*;
}
-keep public class com.google.android.gms.ads.**{
public *;
}
-keep public class com.google.ads.**{
public *;
}
-keepattributes *Annotation*
-dontobfuscate
修正後の結果
とりあえずこの修正で直るのを確認しました。
環境情報
Unity 2021.3.19f1