android - 致命异常 : java. lang.RuntimeException:不支持同时使用来自多个进程的 WebView 和相同的数据目录

标签 android webview process

1.当我在 Android 9 上的 Fragment onCreateView 方法 inflater.inflate(webview_layout, container, false) 中可能会崩溃并出现爆炸日志:


    Fatal Exception: java.lang.RuntimeException:Using WebView from more than one process at once with the same data directory is not supported. https://crbug.com/558377
    at jO.b(PG:102)
    at jQ.run(PG:3)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:226)
    at android.app.ActivityThread.main(ActivityThread.java:7210)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:499)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:961)

2.I try add blow code in Application onCreate method

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    String processName = getProcessName();
    if (!MAIN_PROCESS.equals(processName)) {
        WebView.setDataDirectorySuffix(getProcessName() + ".webview");
    }
}

但是一些Android手机也以同样的原因崩溃,我不使用多进程的webview,然后我尝试在inflater.inflate(webview_layout,container,false)之前在Fragment onCreateView中添加这段代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    String processName = getProcessName();
    try {
        WebView.setDataDirectorySuffix(processName);
    } catch (Throwable e) {
        // ignore
    }
}

但是我在 PCAM10\PCEM00\PCAT10... 中也得到了一些相同的崩溃报告......而且我无法在本地重新出现这个崩溃。

这次崩溃还有其他原因吗?

最佳答案

在初始化 Admob 之前在 Application 类中使用此代码解决我的问题:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        val process = getProcessName()
        if (packageName != process) WebView.setDataDirectorySuffix(process)
    }

MobileAds.initialize(this)

关于android - 致命异常 : java. lang.RuntimeException:不支持同时使用来自多个进程的 WebView 和相同的数据目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62079558/

相关文章:

ruby - 在 ruby 中杀死整个进程树

android - 设置最小和最大缩放级别

javascript - Google map javascript api bug android 浏览器(Jelly bean 及之前版本)

android - Android 中 Google Map V2 上圆圈上的 LatLng 点

java - 如何在 fragment 中使用Android Webview

android - 无法在 WebView 中使用自定义字体

c++ - fork创建子进程时,parent ID与parent ID不一样

c - 父进程无法读取 C 中 4 个不同管道的所有消息

android - 如何制作自定义可点击区域?

android - youtube 视频未显示在 webView 中