创建Expo项目后连接Android设备遇Header字符无效错误
Expo项目启动报错:X-React-Native-Project-Root 头部含无效字符
问题详情
使用npx create-expo-app@latest创建Expo项目,进入项目目录执行npx expo start启动服务。Android手机安装Expo Go并扫描二维码后,终端抛出错误,手机端提示打包服务未运行。
终端错误日志
TypeError: Invalid character in header content ["X-React-Native-Project-Root"] at ServerResponse.setHeader (node:_http_outgoing:702:3) at C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\@expo\cli\src\start\server\metro\dev-server\createMetroMiddleware.ts:71:9 at call (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:239:7) at next (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:183:5) at next (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:161:14) at next (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:161:14) at next (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:161:14) at compression (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\compression\index.js:215:5) at call (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:239:7) at next (C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app\node_modules\connect\index.js:183:5)
手机端提示
Something went wrong. Packager is not running at http://192.168.1.210:8081
环境版本
Node.js 22.12.0 Expo 52.0.23
额外情况
npm run android和npm run ios命令无法运行,但Web版本正常。- 切换到Node.js 18.20.5创建项目,出现其他错误。
解决方案
1. 核心原因
项目路径C:\Users\Sync\Documents\עבודות לבית ספר\webbing\react basics\my-expo-app包含希伯来文(非ASCII字符),HTTP请求头不支持这类特殊字符,导致X-React-Native-Project-Root头部设置失败,进而引发打包服务异常。
2. 修复步骤
- 迁移项目到纯ASCII字符路径,例如
C:\Projects\my-expo-app,确保路径中无中文、希伯来文等非英文字符,尽量避免空格。 - 进入新目录后,执行
npx expo start --clear清除缓存并重启服务。
3. 补充建议
- 使用Expo官方推荐的Node.js版本(Expo 52对应Node.js 18.x LTS),切换版本后执行
npm install重新安装依赖。 - 若
npm run android仍报错,检查Android SDK路径是否也存在非ASCII字符,如有需同步调整。
内容的提问来源于stack exchange,提问作者user27379482
相关产品推荐
相关产品推荐

