TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Unity: Admobエラー「java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener」

状況

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を貼り付けます。

### AdMob
-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も削除してしまっていたようです。