質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • C#

    7682questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Android

    6720questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Unity

    4396questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    1428questions

    Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

  • AdMob

    48questions

【Unity】Admob広告がAndroid実機テストで表示されない

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 596

pro_gengu

score 2

 【Unity】Admob広告がAndroid実機テストで表示されない

Unityを使ってiPhoneとAndroid向けにアプリを開発しています。すでにゲーム部分は完成しAdmobを使いインタースティシャル広告を導入しようとしています。

iPhoneでは実機での広告の表示までうまくいっているのですが、Androidでは実機テストの時に広告が表示されません。
エディター上ではinterstitialAd.isLoaded()でロードがされていることは確認できるのですが広告の表示自体はされていません。

 発生している問題・エラーメッセージ

Android Studioのlogcatで確認した実機テストをしている時のエラーメッセージです

06-27 16:02:43.863 10548-10564/? E/Unity: AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.MobileAds
    java.lang.ClassNotFoundException: com.google.android.gms.ads.MobileAds
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:324)
        at java.lang.Class.forName(Class.java:285)
        at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
        at com.unity3d.player.UnityPlayer.c(Unknown Source)
        at com.unity3d.player.UnityPlayer$e$2.queueIdle(Unknown Source)
        at android.os.MessageQueue.next(MessageQueue.java:404)
        at android.os.Looper.loop(Looper.java:137)
        at com.unity3d.player.UnityPlayer$e.run(Unknown Source)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.MobileAds" on path: DexPathList[[zip file "/data/app/com.GenguApps.FourDrops-1/base.apk"],nativeLibraryDirectories=[/data/app/com.GenguApps.FourDrops-1/lib/arm, /data/app/com.GenguApps.FourDrops-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findCl
06-27 16:03:04.803 10548-10570/? E/mono: Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
      at UnityEngine.AndroidJavaObject.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0 
      at UnityEngine.AndroidJavaObject.Finalize () [0x00000] in <filename unknown>:0 

 該当のソースコード

private void RequestInterstitial()
    {
        #if UNITY_ANDROID
            string adUnitId = "**************************************";
        #elif UNITY_IPHONE
            string adUnitId = "**************************************";
        #else   
            string adUnitId = "unexpected_platform";
        #endif

        // Initialize an InterstitialAd.
        interstitialAd = new InterstitialAd(adUnitId);
        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the interstitial with the request.
        interstitialAd.LoadAd(request);
    }

    private void ShowInterstitialAd(){
        if(interstitialAd.IsLoaded()){
            interstitialAd.Show();
            Debug.Log("Ad is loaded!");
        }else{
            Debug.Log("Ad is not loaded!");
        }
    }

 試したこと

広告が読み込まれているかの確認をエディター上と実機上で行なったところ、

エディター上では読み込みは行なっているが広告が表示されていない
実機上では読み込まれていない(そもそもShowInterstitailAd()が呼ばれなかった)

という結果になりました。

 補足情報(FW/ツールのバージョンなど)

Unity2018
Google Mobile Ads Unity Plugin v3.13.1
Android 6.0.1 API 23

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

..\Assets\Plugins\Android\
以下に
com.android.support.support-compat-26.1.0.aar
のようなaarファイルが生成されていますか?

無い場合は、Force Resole

Assets > Play Services Resolver > Android Resolver > Force Resolve

を実行してみてください
またAndroidにplatfromのスイッチを行ったときにエラーが発生していなかったでしょうか
(このエラーがあってもビルドと実行はできます)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • C#

    7682questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Android

    6720questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Unity

    4396questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    1428questions

    Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

  • AdMob

    48questions