在配备带 Cortex-A53 的 Mediatek MT6735P 芯片组的 64 位 armv8 设备上崩溃 CPU

Crash on 64-bit armv8 device which have Mediatek MT6735P chipset with Cortex-A53 CPU

在具有以下堆栈跟踪的 64 位 armv8 设备上崩溃。检查了几个不同的 Android 系统 WebView 版本,包括最新的测试版 (77.0.3865.73)。

复制: 使用 react-native init AwesomeProject --0.60.5 创建项目 使用 React Native WebView Getting Started Guide

安装 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.access0(WebViewChromium.java:104)
        at com.android.webview.chromium.WebViewChromium.run(WebViewChromium.java:271)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:131)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.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.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, He provides a workaround for this issue in 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);
    }