Unity AndroidでGoogle Mobile Ads (admob)が表示されない。トラブルに続くトラブル^^;

iOSではそのまま表示できたのになーと

ログを出してみていたら、Start()de
MobileAds.Initialize
のところでエラーになっていました。。。

10-10 20:15:40.806  1090  1110 E Unity   : AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
10-10 20:15:40.806  1090  1110 E Unity   : java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
10-10 20:15:40.806  1090  1110 E Unity   :  at java.lang.Class.classForName(Native Method)

こんな感じで、クラスが見つからないと。なにかファイルが足りていないのか?

10-10 20:15:40.806  1090  1110 E Unity   : Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.google.android.gms.ads.initialization.OnInitializationCompleteListener” on path: DexPathList[[zip file “/system/framework/org.apache.http.legacy.boot.jar”,

んー

https://developers.google.com/admob/unity/start?hl=ja#android

>> Unity エディタで、[Assets] > [Play Services Resolver] > [Android Resolver] > [Resolve] 

っていうの
External Dependency Manager > Android Resolver > Resolve
もやったのですがねー

全然解決策がわからないので・・・

Resolve がなんかResolveしてないんだろうなと

Force Resolve

を選択してみました!

もりもりPlugins > Androidになにか増えていきました^o^

Build 失敗^^; これは重症化か・・・

めげずに Unity Hubから unityのバージョンを代えてみました!

buildできたけど、アプリ起動即エラー!!!

んごごご><

とりあえずLTSで動かそうと 2019.4.12f にしました。

ダウングレードしたことにより、エラー^^;

Library/PackageCache/com.unity.collab-proxy@1.3.9/Editor/UserInterface/Bootstrap.cs(23,20): error CS0117: ‘Collab’ does not contain a definition for ‘ShowChangesWindow’

よくわかりませんが、PackageCacheなので消してもいいのかなーなんて思い消してみます^^;

プロジェクトディレクトリの下の Library/PackageCache/… ぜんぶ消してみようかななんて

PackageCache 全消しして から Unity を起動してみました!

ダメでしたー;;

Package/manifest.json から該当パッケージを削除してみる

{
  "dependencies": {
    "com.google.external-dependency-manager": "1.2.157",
    "com.unity.2d.sprite": "1.0.0",
    "com.unity.2d.tilemap": "1.0.0",
 => "com.unity.collab-proxy": "1.3.9",
    "com.unity.ext.nunit": "1.0.0",
    "com.unity.ide.rider": "1.2.1",
    "com.unity.ide.visualstudio": "2.0.2",
    "com.unity.ide.vscode": "1.2.1",
    "com.unity.mobile.notifications": "1.3.0",
    "com.unity.test-framework": "1.1.16",
 => "com.unity.textmeshpro": "3.0.1",    
    "com.unity.timeline": "1.2.6",
    "com.unity.ugui": "1.0.0",
    "com.unity.modules.ai": "1.0.0",
    "com.unity.modules.androidjni": "1.0.0",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0

エラーがでている該当する2行を削除してからまた起動。

Android build … 失敗。

Failed to load ‘/Users…/Library/LastBuild.buildreport’. File may be corrupted or was serialized with a newer version of Unity.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

リセット

いったん諦めて、gitで元の状態に戻しました。

UnityのVersionはLTSではない最新状態に。

Force Resolveして、Plugins/Android 以下にファイルをがーっと

ところが、また、エラー・・・Build Error

深呼吸からいったんUnityをClose して hubから再起動

再度 Build and Run を実行。

無事、実行されました。

ClassNotFoundException は出なくなり、広告の関数は実行されています!
広告は表示されていません^^;

アプリの実行自体は問題ないのですが・・・

Ads     : Ad failed to load : 3

テスト広告をリクエストしている模様.

Ads     : Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList(“xxx”) to get test ads on this device.

 AdsUnity: Calling loadAd() on Android

Ads     : Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList(“1E156C9E4DB0F4C932F853F6F928E3C8”) to get test ads on this device.
Ads     : Not retrying to fetch app settings
Ads     : SDK version: afma-sdk-a-v202510999.202006000.1
Ads     : HTTP timeout: 60000 milliseconds.
FA-Ads  : Tag Manager is not found and thus will not be used
Ads     : Ad failed to load : 3

広告がないか、広告のIDが違うかのエラーらしいです。

その前に、HTTP timeout: 60000 milliseconds.ってあるので・・・ですけど・・・

とりあえず、Test状態のエラーというパターンもあるかな?(希望的観測。

さていつ解決するか乞うご期待?

新しいエラーで起動失敗!!!

広告のロードエラーで安心していたのですが、gitで他がおかしくなって直していたら動かなくなりました!!!

app idがおかしいとか言われていますが・・・ちゃんと設定してありますが・・・

Invalid application ID. Follow instructions here:

 FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:

**************************************************************************
Invalid application ID. Follow instructions here:          https://googlemobileadssdk.page.link/admob-android-update-manifest
to find your app ID.                                                      
**************************************************************************

AndroidManifest.xml を更新する?

ここに app ID があるか確認しろと

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1">
  <application>
    <uses-library android:required="false" android:name="org.apache.http.legacy" />
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value=" ca-app-pub-123~456" />
  </application>
</manifest>

なんと! ca-app-pub- の前にスペースが一つ・・・

シンプルに、app ID にスペースが入っていました・・・

Assets > Google Mobile Ads > Settings から app IDを修正しました^^

無事起動成功^^

コメントを残す

メールアドレスが公開されることはありません。

お気軽にコメントいただけると嬉しいです!
質問や気になる商品・サービスなどについてなんでも!
名前はハンドルネーム、emailも仮で適当な文字を入力いただければ問題ありません。