Expo React Native从Expo Go迁移到Dev Build时的依赖报错问题求助
问题描述
我正尝试把我的Expo应用从Expo Go迁移到Expo Dev Build。一开始构建开发客户端时,遇到了错误:
(NOBRIDGE) ERROR Warning: Error: [@RNC/AsyncStorage]: NativeModule: AsyncStorage is null
折腾了一堆办法都没修好,我以为是AsyncStorage本身的问题,就把所有相关代码都删掉,换成了Expo SecureStore,结果还是不行,现在依然遇到类似的NativeModule为空的错误。
排查与解决建议
我之前迁移的时候也踩过类似的坑,给你几个实际可行的排查方向:
确认依赖版本匹配并重新安装
不管是@react-native-async-storage/async-storage还是expo-secure-store,首先得确保它们的版本和你当前的Expo SDK版本兼容。先执行这条命令重新安装依赖,让Expo自动匹配合适的版本:npx expo install @react-native-async-storage/async-storage expo-secure-store彻底清缓存,重新构建客户端
缓存真的是这类问题的重灾区,按顺序执行下面的命令,把所有可能的缓存都清干净:# 清理prebuild生成的原生文件 npx expo prebuild --clean # 删除node_modules并重装依赖 rm -rf node_modules && npm install # 清除Expo的缓存并重启开发服务 npx expo start --clear注意!一定要重新构建Dev Build客户端,旧的安装包不能再用了,必须装新构建的版本才能生效。
检查配置文件有没有误改
打开你的app.json或者app.config.js,看看有没有不小心删掉了必要的配置:- 比如
expo.ios.infoPlist和expo.android.androidManifest里的权限,SecureStore需要的权限是Expo默认包含的,但如果手动修改过配置,可能不小心移除了; - 确认
plugins数组里有没有漏掉相关插件(Expo官方库一般不需要手动加,但第三方库可能需要)。
- 比如
排查第三方依赖的兼容性
有些老的第三方库可能不支持Expo Dev Build,你可以试试暂时注释掉最近新增的依赖代码,看看错误会不会消失。找到问题库后,要么升级到兼容Dev Build的版本,要么换成Expo官方支持的替代库。确保用正确的命令构建和启动
构建Dev Build的时候,别用Expo Go的启动命令,一定要用对应的run命令:# iOS Debug构建 npx expo run:ios --configuration Debug # Android Debug构建 npx expo run:android --mode debug
备注:内容来源于stack exchange,提问作者eschev




