You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native run-android异常:JS服务器未启动且报错

解决React Native run-android时JS服务器未正常启动的问题

Hey,我之前也碰到过一模一样的情况——执行react-native run-android时,命令行显示"starting js server..."但没弹出Node窗口,直接就去启动app了,结果大概率会出现JS bundle加载失败的红屏问题。下面是几个我亲测有效的解决办法:

  • 手动单独启动JS服务器
    先关掉当前卡住的命令行窗口,新开一个终端进入你的项目根目录,执行:
    npm start 或者 yarn start(看你平时用的包管理器)
    这时候应该能看到Metro Bundler的启动日志,或者弹出Node.js的窗口。等服务器完全就绪(一般会显示"Loading dependency graph, done."),再开另一个终端执行react-native run-android,这样app就能正常连接到JS服务器了。

  • 手动配置adb反向代理
    有时候adb的端口映射会出问题,你可以先手动执行这条命令确保8081端口映射正常:
    adb reverse tcp:8081 tcp:8081
    执行完之后再重新运行react-native run-android试试。

  • 杀掉残留的Node进程
    可能之前的Node服务器进程没完全关闭,占着端口导致新的服务器启动失败。打开任务管理器,找到所有node.exe进程,全部结束掉,然后再重新执行启动命令。

  • 重置项目缓存
    缓存损坏也可能引发这类问题,执行以下命令重置缓存:

    # npm用户
    npm start -- --reset-cache
    # yarn用户
    yarn start --reset-cache
    

    等缓存重置完成后,再运行react-native run-android。

  • 检查Metro配置(可选)
    如果你的项目修改过metro.config.js,可能存在配置错误导致服务器启动异常。可以先备份当前配置,然后替换成默认的配置试试:

    const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
    
    const config = {};
    
    module.exports = mergeConfig(getDefaultConfig(__dirname), config);
    

另外,你还可以检查下Node.js版本是否和你的React Native版本兼容——比如RN 0.70及以上建议用Node 16+版本,版本不匹配也可能导致服务器启动异常。

内容的提问来源于stack exchange,提问作者Deepak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:29:20