Android模拟器启动后脚本未执行npx react-native run-android的问题
Android模拟器启动后脚本无法执行后续命令的解决办法
我通过命令行启动Android模拟器的操作正常,但模拟器加载完成后,脚本始终无法执行到
npx react-native run-android这一行,请问需要进行哪些配置或调整?
用户提供的脚本:
emulator -list-avds # 询问用户要使用的模拟器名称 read -p "Which Android emulator name (i.e. Pixel_7_Pro_API_34)?: " device emulator -avd $device npx react-native run-android
问题原因
emulator -avd $device是前台运行命令,启动后会占据当前终端进程,脚本会暂停在这一行,直到模拟器被手动关闭,才会继续执行后续的npx命令。
解决方法
1. 让模拟器后台运行(推荐)
修改启动模拟器的命令,将其放到后台执行,同时避免终端关闭时模拟器被终止:
emulator -avd $device & disown
这样模拟器会在后台启动,脚本会立刻继续执行npx react-native run-android。如果需要保留模拟器图形界面,直接加&也可,但disown能防止关闭终端时模拟器进程被杀死。
2. 等待模拟器完全就绪后再执行命令
即使模拟器后台启动,也可能存在未完全就绪的情况,导致run-android失败。可以添加等待逻辑,检查模拟器是否在线:
emulator -avd $device & disown echo "等待模拟器启动..." # 循环检查设备是否在线,直到adb能检测到 until adb devices | grep -q "$device"; do sleep 2 done npx react-native run-android
3. 手动启动模拟器后执行脚本
如果习惯用Android Studio启动模拟器,可以先手动打开目标模拟器,然后简化脚本,直接执行打包命令:
npx react-native run-android
内容的提问来源于stack exchange,提问作者Mike Flynn
相关产品推荐
相关产品推荐

