我们启动一个react native 项目,会自动用node启动一个后台服务 ,app会访问这个服务来获取bundle,出现unable to load script的原因,就是因为app访问不到这个后台服务
我们首先要确认这个后台服务起来没有,在浏览器中输入localhost:8081,如果出现如下图,则表示服务已经起来了
而且本机ip:8081也必须能够访问!而且本机ip:8081也必须能够访问!而且本机ip:8081也必须能够访问!重要的事情说三遍!!!
mac查看本机ip
如果 本机ip:8081访问不了,很有可能8081端口被占用了
mac下查看端口使用情况
lsof -i tcp:8081
上图是正常情况下8081端口使用,因为我已经用运行项目,所以node占用了8081,qumu-syst是安卓模拟器,Google我也不知道是啥,但没影响
如果出现多个不同的进程,则说明8081端口被多个应用所占用,需要根据pid来kill不需要的进程,我遇到的情况是java占用了8081端口
根据pid结束进程
kill -9 pid
此时关闭Metro终端,再重启应用(yarn android)就能正常的运行项目了,这是我爬了一天的坑,希望其他人别再爬了