1.当我在Fragment的onCreateView方法中使用inflater.inflate(webview_layout, container, false)时,在Android 9上可能会崩溃,并显示以下日志:
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.我尝试将以下代码添加到Application onCreate方法中
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
String processName = getProcessName();
if (!MAIN_PROCESS.equals(processName)) {
WebView.setDataDirectorySuffix(getProcessName() + ".webview");
}
}
但是一些安卓手机也因相同的原因崩溃,而我没有使用多进程的 webview。然后在片段 onCreateView 方法中,在 inflater.inflate(webview_layout, container, false) 前加入了这段代码。if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
String processName = getProcessName();
try {
WebView.setDataDirectorySuffix(processName);
} catch (Throwable e) {
// ignore
}
}
但我在PCAM10\PCEM00\PCAT10等地方也收到了相同的崩溃报告,但我无法在本地重现这个崩溃。
还有什么其它原因会导致这个问题出现吗?