Expo EAS Android Build SDK 47 上的 React-native-webview RNCWebView.isFileUploadSupported 错误
错误描述:
此软件包的 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-app
和
cd 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')
使用此版本的 WebView。它对我来说效果很好。
我使用相同的Expo版本与其他开发人员合作,构建过程,React-Native-webview为他们使用。这使我认为也许它与我的环境有关,而不是模块。
这使我研究了哪个版本的节点,npx,yarn等。我搬到了节点v18+(i(i)以前是在节点14上),这将我升级到NPX v8.19.2。之后,我经过了相同的步骤来重现其奏效的问题!! 🎉