我们正在使用React Native构建WebRTC的应用程序。当我们将其更改为系统应用程序时,它会崩溃并显示以下错误消息:
03-28 15:39:13.467 7273 7613 E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
03-28 15:39:13.467 7273 7613 E AndroidRuntime: Process: com.daxiaoipc, PID: 7273
03-28 15:39:13.467 7273 7613 E AndroidRuntime: java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:236)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at android.webkit.CookieManager.getInstance(CookieManager.java:47)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at com.facebook.react.modules.network.ForwardingCookieHandler.getCookieManager(ForwardingCookieHandler.java:136)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at com.facebook.react.modules.network.ForwardingCookieHandler.get(ForwardingCookieHandler.java:53)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.JavaNetCookieJar.loadForRequest(JavaNetCookieJar.kt:47)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at com.facebook.react.modules.network.ReactCookieJarContainer.loadForRequest(ReactCookieJarContainer.java:44)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:74)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-28 15:39:13.467 7273 7613 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
以下是一些要点:
1.错误消息为For security reasons, WebView is not allowed in privileged processes
。
- AndroidManifest.xml中有
android:sharedUserId="android.uid.system"
。
1.我们在项目中没有使用WebView
。
1.我们在Android 10上使用react-native
和react-native-webrtc
。
1.崩溃是由fetch
调用引起的。fetch
调用okhttp3
,okhttp3
调用webkit
,然后调用webview
。我们可以从上面的调用堆栈中看到调用链。
1.当我们把它改回正常的应用程序时,它就能工作了。
我们的问题是:我们该如何解决这个问题呢?
1条答案
按热度按时间2ul0zpep1#
我们通过根据this pose挂钩
webview
来解决这个问题。看起来React Native依赖于webview
。由于我们将使用React Native开发系统应用程序,我们希望Facebook将来能够消除对webview
的依赖。