Expo安卓应用WebView报错求助:RNCWebView相关TypeError问题
解决 Expo Android 中 react-native-webview 加载错误问题
错误核心原因
你遇到的TypeError: null is not an object (evaluating '_reactNative.NativeModules.RNCWebView.isFileUploadSupported')和"main" has not been registered错误,本质是react-native-webview的原生模块未正确集成到dev-client环境中。使用--dev-client启动时,Expo不会自动处理原生第三方模块的注入,必须手动预构建原生项目代码。
解决方案
1. 执行Expo预构建
运行以下命令生成安卓原生项目文件,将webview的原生模块集成进去:
npx expo prebuild
预构建完成后,重新启动dev-client:
expo start --dev-client
2. 清理缓存并重启Metro
停止当前运行的Metro服务,执行清理缓存命令后重启:
npx expo start --clear --dev-client
3. 验证依赖版本兼容性
确保react-native-webview版本与你的Expo SDK版本匹配。可以根据当前Expo SDK版本安装对应适配版本:
npx expo install react-native-webview@[适配版本号]
例如Expo SDK 49对应react-native-webview@13.6.3,SDK 50对应react-native-webview@13.8.6。
4. 优化App.js代码(可选)
为View添加全屏样式,确保WebView正常显示:
import { View, StyleSheet } from 'react-native'; import { WebView } from 'react-native-webview'; export default function App() { return ( <View style={styles.container}> <WebView source={{ uri: 'https://example.com' }} /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, }, });
内容的提问来源于stack exchange,提问作者qccaprospect
相关产品推荐
相关产品推荐

