Expo管理工作流构建Android开发版应用启动时脚本加载失败问题求助
兄弟,我太懂你这种明明按步骤构建了开发版,结果打开就跳脚本加载失败的懵圈感了!我之前用EAS搞开发版Android包的时候也踩过这个坑,给你分享几个亲测有效的排查和解决方向,应该能帮你搞定:
先确认Metro服务和网络环境
首先得确保你本地的Metro服务器是正常跑着的,别光构建了包就忘了开服务!直接运行expo start --dev-client就行(用这个比npx react-native start更适配EAS的开发客户端)。另外一定要注意:你的Android设备(真机或者模拟器)和运行Metro的电脑必须在同一个Wi-Fi里,不然设备根本找不到你电脑上的服务,自然加载不了脚本。手动指定Metro服务器地址
EAS构建的开发版不像Expo Go那样自动弹连接界面,得手动操作配置。真机的话摇一摇设备,模拟器按Ctrl+M(Windows)或者Cmd+M(Mac),调出开发者菜单后选「Change Bundle Location」,输入你电脑的局域网IP加Metro端口,格式比如http://192.168.1.105:8081/index.bundle?platform=android&dev=true&minify=false就行。
要是嫌手动输IP麻烦,启动Metro的时候加个--host 0.0.0.0参数,比如expo start --dev-client --host 0.0.0.0,这样同一网内的设备就能自动识别到服务了。检查eas.json里的开发配置
打开项目根目录的eas.json,看看development这个profile的配置是不是对的,核心是要开developmentClient,不然构建出来的包不带开发者工具,自然没连接选项。正确的配置大概是这样:"development": { "developmentClient": true, "distribution": "internal", "android": { "buildType": "debug" } }要是之前没开
developmentClient,改完后得重新跑EAS构建命令才行。清缓存重来(玄学但管用)
有时候缓存搞鬼,你先跑expo r -c清除Expo和Metro的所有缓存,然后重新启动Metro,再重新构建一次包试试。要是觉得远程构建慢,也可以用eas build --platform android --profile development --local本地构建,速度快还能看实时日志排查问题。
备注:内容来源于stack exchange,提问作者Light Love Peace

