InterstitalAd при вызове show приложение вылетает

В onCreate:

MobileAds.initialize(this);
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest,
        new InterstitialAdLoadCallback() {
            @Override
            public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                mInterstitialAd = interstitialAd;
                mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                    @Override
                    public void onAdDismissedFullScreenContent() {
                        mInterstitialAd = null;
                    }

                    @Override
                    public void onAdFailedToShowFullScreenContent(AdError adError) {
                        mInterstitialAd = null;
                    }

                    @Override
                    public void onAdShowedFullScreenContent() { }
                });
            }
            @Override
            public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { mInterstitialAd = null; }
        });

if (mInterstitialAd != null) {
    mInterstitialAd.show(this);
}

Ошибка(Logcat):

2021-06-29 20:14:19.507 31692-31800/com.neutrinozh.dino E/AndroidRuntime: FATAL EXCEPTION: GLThread 1150
    Process: com.neutrinozh.dino, PID: 31692
    java.lang.RuntimeException: java.lang.Throwable: A WebView method was called on thread 'GLThread 1150'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 2) {83a0252} called on null, FYI main Looper is Looper (main, tid 2) {83a0252})
        at android.webkit.WebView.checkThread(WebView.java:2597)
        at android.webkit.WebView.evaluateJavascript(WebView.java:882)
        at com.google.android.gms.internal.ads.zzciu.evaluateJavascript(com.google.android.gms:play-services-ads@@20.2.0:3)
        at com.google.android.gms.internal.ads.zzciu.zzaM(com.google.android.gms:play-services-ads@@20.2.0:1)
        at com.google.android.gms.internal.ads.zzciu.zzaN(com.google.android.gms:play-services-ads@@20.2.0:4)
        at com.google.android.gms.internal.ads.zzciu.zzd(com.google.android.gms:play-services-ads@@20.2.0:10)
        at com.google.android.gms.internal.ads.zzbun.zzj(com.google.android.gms:play-services-ads@@20.2.0:2)
        at com.google.android.gms.internal.ads.zzciu.zzag(com.google.android.gms:play-services-ads@@20.2.0:5)
        at com.google.android.gms.internal.ads.zzciq.zzag(com.google.android.gms:play-services-ads@@20.2.0:1)
        at com.google.android.gms.internal.ads.zzead.zza(com.google.android.gms:play-services-ads@@20.2.0:2)
        at com.google.android.gms.internal.ads.zzddu.zza(com.google.android.gms:play-services-ads@@20.2.0:4)
        at com.google.android.gms.internal.ads.zzefm.zzQ(com.google.android.gms:play-services-ads@@20.2.0:5)
        at com.google.android.gms.internal.ads.zzbof.show(com.google.android.gms:play-services-ads-lite@@20.2.0:2)
        at com.neutrinozh.dino.AndroidLauncher.show(AndroidLauncher.java:162)
        at com.neutrinozh.dino.Dino.menuUpdate(Dino.java:247)
        at com.neutrinozh.dino.Dino.render(Dino.java:313)
        at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:471)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1573)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1272)
     Caused by: java.lang.Throwable: A WebView method was called on thread 'GLThread 1150'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 2) {83a0252} called on null, FYI main Looper is Looper (main, tid 2) {83a0252})
        at android.webkit.WebView.checkThread(WebView.java:2592)
        at android.webkit.WebView.evaluateJavascript(WebView.java:882) 
        at com.google.android.gms.internal.ads.zzciu.evaluateJavascript(com.google.android.gms:play-services-ads@@20.2.0:3) 
        at com.google.android.gms.internal.ads.zzciu.zzaM(com.google.android.gms:play-services-ads@@20.2.0:1) 
        at com.google.android.gms.internal.ads.zzciu.zzaN(com.google.android.gms:play-services-ads@@20.2.0:4) 
        at com.google.android.gms.internal.ads.zzciu.zzd(com.google.android.gms:play-services-ads@@20.2.0:10) 
        at com.google.android.gms.internal.ads.zzbun.zzj(com.google.android.gms:play-services-ads@@20.2.0:2) 
        at com.google.android.gms.internal.ads.zzciu.zzag(com.google.android.gms:play-services-ads@@20.2.0:5) 
        at com.google.android.gms.internal.ads.zzciq.zzag(com.google.android.gms:play-services-ads@@20.2.0:1) 
        at com.google.android.gms.internal.ads.zzead.zza(com.google.android.gms:play-services-ads@@20.2.0:2) 
        at com.google.android.gms.internal.ads.zzddu.zza(com.google.android.gms:play-services-ads@@20.2.0:4) 
        at com.google.android.gms.internal.ads.zzefm.zzQ(com.google.android.gms:play-services-ads@@20.2.0:5) 
        at com.google.android.gms.internal.ads.zzbof.show(com.google.android.gms:play-services-ads-lite@@20.2.0:2) 
        at com.neutrinozh.dino.AndroidLauncher.show(AndroidLauncher.java:162) 
        at com.neutrinozh.dino.Dino.menuUpdate(Dino.java:247) 
        at com.neutrinozh.dino.Dino.render(Dino.java:313) 
        at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:471) 
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1573) 
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1272) 

Ответы (2 шт):

Автор решения: Neutrino Zh

Проблема решена. Просто перешёл на более раннюю версию play-services-ads (на 10.2.4); Переписал код под неё, как это показано здесь и всё успешно заработало!

→ Ссылка
Автор решения: Binary

А можно сделать так, должно работать на последней версии

private var mInterstitialAd: InterstitialAd? = null

MobileAds.initialize(this)

InterstitialAd.load(context, interstitialKey, adRequest, object : InterstitialAdLoadCallback() {
     override fun onAdFailedToLoad(adError: LoadAdError) {
         mInterstitialAd = null
            
     }

     override fun onAdLoaded(interstitialAd: InterstitialAd) {
         mInterstitialAd = interstitialAd

                mInterstitialAd?.fullScreenContentCallback = object : FullScreenContentCallback() {
                    override fun onAdDismissedFullScreenContent() {
                    }

                    override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
                    }

                    override fun onAdShowedFullScreenContent() {
                        mInterstitialAd = null

                    }
                }

            }
        })
mInterstitialAd?.show(this)
→ Ссылка