マルチプロセスでAdMobバナー広告を使用しています。 29より前のAPIバージョンでは正常に動作していますが、Android-Pではこのエラーが発生します。
com.google.Android.gms.ads.internal.webview.s: Webview initialization failed.
at com.google.Android.gms.ads.internal.webview.o.a(:com.google.Android.gms.policy_ads_fdr_dynamite@[email protected]:5)
at com.google.Android.gms.ads.internal.i.a(:com.google.Android.gms.policy_ads_fdr_dynamite@[email protected]:6)
at com.google.Android.gms.ads.internal.y.a(:com.google.Android.gms.policy_ads_fdr_dynamite@[email protected]:4)
at com.google.Android.gms.ads.internal.l.run(:com.google.Android.gms.policy_ads_fdr_dynamite@[email protected]:11)
at Android.os.Handler.handleCallback(Handler.Java:873)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at com.google.Android.gms.ads.internal.util.f.dispatchMessage(:com.google.Android.gms.policy_ads_fdr_dynamite@[email protected]:1)
at Android.os.Looper.loop(Looper.Java:193)
at Android.app.ActivityThread.main(ActivityThread.Java:6669)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.Java:493)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:858)
Caused by: Java.lang.RuntimeException: Using WebView from more than one process at once with the same data directory is not supported. https://crbug.com/558377
アプリケーションクラスでMobileAdsを初期化しました。また、広告を使用している他のプロセスで初期化しようとしましたが、うまくいきませんでした。
エラーの次の行に注意してください: "_Caused by: Java.lang.RuntimeException: Using WebView from more than one process at once with the same data directory is not supported.
_"
これは、アプリが2つ以上のプロセスを使用しており、私の で説明されているように、プロセスごとに異なるWebView
ディレクトリを設定する必要があることを意味します(メインプロセスにはすでにデフォルトのフォルダーがあります)。 )ここで質問と回答 。
Android 9.0 API 28では、WebView
を使用する前に、2番目のプロセスの実行中にWebView.setDataDirectorySuffix("any-folder-name")
を呼び出します。