Unity Admob プラグインにて「AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener 」が発生した時の対処方法


はじめに:
リリースするときに難読化したら、以下のエラー内容が発動
AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener


つまり、どうゆうこと?

簡単に説明すると、指定したjavaのクラスファイルが存在しない。このエラーが出ている場合は当然広告も表示されない


再現手順:(自分の環境の場合)

  1. [編集]メニュー→[プロジェクト設定]で[Project Settings]を開く

  2. [プレイヤーの設定]で、[公開設定]開く

  3. [ファイル圧縮]の部分で[R8を使用]と「リリース」にチェックを付ける

環境:

  • Unityバージョン: 2021.3.16f1

  • Google Mobile Ads Unityプラグインバージョン:8.3.0

  • プラットフォーム: Android

  • プラットフォームOSバージョン: Android 5.0 から API レベル 34

  • デバイス: すべて


以下の対応をしましたがダメでした。:
他の方で同じ状況になっていましたので、[Assets] > [Play Services Resolver] > [Android Resolver] > [Force Resolve] を実行するなど、試行した結果、問題が解決されませんでした。

解決策:
以下のサイトでBuild Settings > Player Settings > Publishing Settings > Custom Proguard File に移動し、次の行を proguard-user.txt に追加してください。

https://github.com/googleads/googleads-mobile-unity/issues/2458


結論:
難読化対応やAdmob導入で、不具合または広告が表示されない問題に直面した場合、Proguardの設定を調整することで解決できる可能性があります。指定された行をProguardファイルに追加することで、Obfuscationプロセス中に必要なAdmobのクラスが保持され、ClassNotFoundException エラーが解消されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


最近のコメント