具有以下堆栈跟踪的64位armv8设备崩溃。检查了几种不同的Android System WebView版本,包括最新的beta版本(77.0.3865.73)。
重现: 使用react-native init创建一个项目AwesomeProject --0.60.5使用React Native WebView入门指南安装react-native-webview
堆栈跟踪
E/unknown:ReactNative: Exception in native call
android.content.res.Resources$NotFoundException: String resource ID #0x3040003
at android.content.res.HwResources.getText(HwResources.java:1287)
at android.content.res.Resources.getString(Resources.java:431)
at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:709)
at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:633)
at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:685)
at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:834)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:670)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:605)
at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:319)
at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:104)
at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:271)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:131)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:118)
at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:115)
at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:268)
at android.webkit.WebView.<init>(WebView.java:597)
at android.webkit.WebView.<init>(WebView.java:531)
at android.webkit.WebView.<init>(WebView.java:514)
at android.webkit.WebView.<init>(WebView.java:501)
at android.webkit.WebView.<init>(WebView.java:491)
at com.reactnativecommunity.webview.RNCWebViewManager$RNCWebView.<init>(RNCWebViewManager.java:902)
at com.reactnativecommunity.webview.RNCWebViewManager.createRNCWebViewInstance(RNCWebViewManager.java:154)
at com.reactnativecommunity.webview.RNCWebViewManager.createViewInstance(RNCWebViewManager.java:160)
at com.reactnativecommunity.webview.RNCWebViewManager.createViewInstance(RNCWebViewManager.java:104)
at com.facebook.react.uimanager.ViewManager.createViewInstanceWithProps(ViewManager.java:119)
at com.facebook.react.uimanager.ViewManager.createViewWithProps(ViewManager.java:66)
at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:259)
at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:198)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1036)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1007)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:172)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:84)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:798)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:571)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5667)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:962)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
感谢@ mike-hardy,他在gitHub中提供了解决此问题的方法
在您的MainActivity.java中添加以下几行
// Workaround appcompat-1.1.0 bug https://issuetracker.google.com/issues/141132133
@Override
public void applyOverrideConfiguration(Configuration overrideConfiguration) {
if (Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT <= 25) {
return;
}
super.applyOverrideConfiguration(overrideConfiguration);
}