作者:花懋1274238844 | 来源:互联网 | 2023-06-21 16:53
这是我们在 Firebase 上看到的堆栈跟踪:
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 : Current process [Our package] (pid 28562), lock owner [Our package] (pid 13324)
org.chromium.android_webview.AwDataDirLock.b (AwDataDirLock.java:27)
as0.i (as0.java:30)
as0.b (as0.java:17)
as0.k (as0.java:2)
com.android.webview.chromium.WebViewChromiumFactoryProvider.g (WebViewChromiumFactoryProvider.java:2)
com.android.webview.chromium.WebViewChromium.init (WebViewChromium.java:14)
android.webkit.WebView. (WebView.java:435)
android.webkit.WebView. (WebView.java:355)
android.webkit.WebView. (WebView.java:337)
android.webkit.WebView. (WebView.java:324)
android.webkit.WebView. (WebView.java:314)
[Our code initializing the webview]
android.os.Handler.handleCallback (Handler.java:938)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loop (Looper.java:246)
android.app.ActivityThread.main (ActivityThread.java:8506)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
我们无法重现这种情况,但我们在 Firebase 上遇到了成百上千的此类崩溃。奇怪的是,99% 的崩溃都发生在运行 Android 11 的三星设备上。我们的应用程序也是单进程应用程序,所以它不应该运行多个进程。我已经在 Chromium 问题跟踪器中发布了帖子,但似乎三星操作系统的错误比 webview 本身更多,所以我想我也会在这里发布。
似乎有些用户让我们的应用程序运行了几个小时,并持有这个 Webview 锁。然而,当他们尝试打开我们的应用程序时,它正在启动一个新进程而不是现有进程,并导致崩溃。
我正在尝试获取更多信息:有没有人知道为什么会在三星 Android 11 上发生这种情况?我们的应用程序或我们的用户可以做些什么来缓解这个问题?有没有其他人遇到过这个问题并找到了解决方法?