开发者问题收集

Expo EAS Android Build SDK 47 上的 React-native-webview RNCWebView.isFileUploadSupported 错误

2023-01-11
675

错误描述:

此软件包的 Expo 支持版本 11.23.1 抛出错误并且无法越过启动画面。在 EAS Android Build 上从 Expo SDK 45 升级到 Expo SDK 47 后,这种情况开始发生。

此模块在 Expo Go 中运行良好,但当我在实际的 Android 版本中加载我的应用时,出现以下错误:

TypeError: null is not an object (evaluating '_reactNative.NativeModules.RNCWebView.isFileUploadSupported')

要重现:

步骤 1: 运行 npx create-expo-app my-appcd my-app (sdk 47) 步骤 2: 安装 react-native-webview npx expo install react-native-webview 。Yarn 用作软件包管理器。 步骤 2: 将类似以下示例的 WebView 添加到主 App.js 文件中:

import * as React from 'react';
import { WebView } from 'react-native-webview';

export default function App() {
  return (
    <WebView
      style={{width: 100, height: 100}}
      source={{ uri: 'https://expo.dev' }}
    />
  );
}

步骤 3: 创建 EAS Android(我建议在您的 EAS 配置文件中使用以下内容: { "developmentClient": true, "distribution": "internal" } 。这将使查看错误消息变得更容易。)

步骤 4: (如果使用 developmentClient build)在本地启动 expo npx expo start 并在 Android Build 中打开。 (注意:react-native-webview 在 Expo Go 中运行良好,只有在实际构建中加载时才会抛出错误。)

预期行为:

应用程序应在启动画面后加载。

屏幕截图/视频:

在 Android 构建中加载我的应用程序后发生以下错误

环境:

  • 操作系统:Mac
  • 操作系统版本:12.5
  • react-native 版本:0.70.5
  • react-native-webview 版本:11.23.1
  • Expo CLI 版本:0.4.11
  • EAS CLI 版本:3.2.1
  • Node 版本:14.21.0
  • Yarn版本:1.22.19

我尝试使用 Expo SDK 47 在 Expo EAS Android Build 中使用 react-native-webview。 我期望应用程序能够像使用 Expo SDK 45 和 Expo Build:Android 构建的应用程序的先前版本一样正常加载。 目前它没有越过启动画面并抛出以下错误:

TypeError: null is not an object (evaluating '_reactNative.NativeModules.RNCWebView.isFileUploadSupported')
2个回答

使用此版本的 WebView。它对我来说效果很好。

[email protected]

jjahanzab
2023-05-10

我使用相同的Expo版本与其他开发人员合作,构建过程,React-Native-webview为他们使用。这使我认为也许它与我的环境有关,而不是模块。

这使我研究了哪个版本的节点,npx,yarn等。我搬到了节点v18+(i(i)以前是在节点14上),这将我升级到NPX v8.19.2。之后,我经过了相同的步骤来重现其奏效的问题!! 🎉

jdpagley
2023-01-11