温馨提示:本文翻译自stackoverflow.com,查看原文请点击:android - Crash on 64-bit armv8 device which have Mediatek MT6735P chipset with Cortex-A53 CPU
android react-native react-native-android react-native-webview

android - 具有Mediatek MT6735P芯片组和Cortex-A53 CPU的64位armv8设备崩溃

发布于 2020-04-13 17:36:15

具有以下堆栈跟踪的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)

屏幕截图: 在此处输入图片说明

查看更多

提问者
EL173
被浏览
74
EL173 2020-02-03 13:30

感谢@ 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);
    }