状況
Admobを入れてAndroidビルドすると以下のようなエラーがlogcatに出てしまい、実機で広告が出なくなりました。
AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.initialization.OnInitializationCompleteListener" on path: DexPathList
AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.AdRequest$Builder
環境
Unity: 2022.3.11f
Admob: v8.5.2
対処法
github.com
www.hirohomme.com
上に書いてある通り、
1.
Project Setting > Player > Publishing Settingsで
minifyのReleaseにチェックが入っている状況になっているので、この状態で、少し上の項目のBuildからCustom Proguard Fileにチェックを入れます。
2.
Assets/Plugins/Android/proguard-user.txtというファイルが生成されるのでそこに参考記事で紹介してあるproguard-user.txtを貼り付けます。
-keep class com.google.unity.** {
*;
}
-keep public class com.google.android.gms.ads.** {
public *;
}
-keep public class com.google.ads.** {
public *;
}
感想
minifyするならproguard file必要だし、しないなら、必要ないということで理解しました。
原因としては以前proguardの設定はしていたのですが、Admobを新しくするときに、Admob関連のPluginフォルダのファイルを全部一旦削除したときに、誤って、proguard fileも削除してしまっていたようです。