Expo SDK v48+Hermes引擎远程调试Redux状态遇阻求助
解决Expo SDK48 + Hermes + React Native Debugger调试Redux的问题
1. 修正React Native Debugger(RND)的端口配置
先关掉所有已打开的RND和Chrome调试窗口,避免端口冲突:
- 打开RND,通过顶部菜单
Debugger > New Window新建窗口 - 手动设置监听端口为
8081(Hermes默认调试端口是8081,Expo的19000是项目服务端口,不是调试用的) - 确认RND的Redux DevTools已启用:点击顶部菜单
View > Toggle Redux DevTools,确保开关处于打开状态
2. 改用正确的调试启动流程
别用Expo终端菜单的Press j打开调试,这个会启动默认Chrome,不带RND的扩展:
- 用
npx expo start --dev-client启动应用 - 在模拟器/真机上打开应用,调出开发者菜单(iOS按
Cmd+D,Android按Cmd+M) - 选择
Debug remote JS选项,此时会自动连接到已打开的RND窗口
3. 检查Redux Store的调试配置
确保你的Redux store正确集成了DevTools,适配Hermes环境:
import { configureStore } from '@reduxjs/toolkit'; export const store = configureStore({ reducer: { // 这里放你的reducer定义 }, devTools: process.env.NODE_ENV !== 'production', });
如果用的是传统Redux(不是Redux Toolkit),要手动添加DevTools中间件,确保配置正确。
如果你尝试了第三方适配Hermes的Redux调试库,先卸载旧依赖,清理缓存后重装:
rm -rf node_modules && npm cache clean --force # 然后重新安装目标库 npm install [你的调试库包名]
严格按照库的官方文档配置初始化代码,确保和Expo SDK48版本兼容。
4. 排查端口占用问题
检查本地8081端口是否被其他进程占用:
- Mac/Linux:
lsof -i :8081 - Windows:
netstat -ano | findstr :8081
如果有占用,杀掉对应进程后,重新启动RND和Expo服务。也可以指定其他端口启动:
npx expo start --dev-client --port 8082
同时在RND里设置监听8082端口即可。
5. 重置调试连接
如果还是显示status:waiting for client..,试试以下操作:
- 重启模拟器/真机
- 关闭Expo服务,清除缓存后重启:
npx expo start --dev-client --clear - 重新打开RND窗口,再次触发应用的
Debug remote JS选项
内容的提问来源于stack exchange,提问作者aleksandarbos
相关产品推荐
相关产品推荐

