执行nx run myapp:run:android时无法选择Android模拟器求助
我目前使用Capacitor构建一款支持Android和iOS的Web应用。运行nx run myapp:run:android命令时,前期执行均正常,但到选择模拟器的环节,无法使用箭头键切换选项,也无法按回车键确认。其他需要选择操作的命令均可正常使用,该命令本身运行逻辑无问题。我已尝试Windows cmd、VS Code终端、Git Bash,且重启过电脑,其他nx相关命令(如sync)也能正常工作。
可能的原因及解决方向
终端交互依赖库兼容性问题
Nx执行Android运行命令时,会调用Capacitor的终端交互模块,若该模块依赖的inquirer等终端交互库存在版本兼容问题,可能导致Windows环境下无法捕获键盘输入。可尝试清理依赖缓存后重装:rm -rf node_modules package-lock.json yarn.lock npm installAndroid SDK环境变量配置不全
虽然命令前期执行正常,但模拟器选择环节需要读取emulator相关环境变量。检查ANDROID_HOME或ANDROID_SDK_ROOT是否正确指向SDK根目录,且%ANDROID_HOME%\emulator已添加到系统PATH中。Nx命令封装的交互传递问题
Nx对Capacitor的run:android命令做了封装,可能存在终端输入传递遗漏。先测试Capacitor原生命令:npx cap run android若原生命令可正常选择模拟器,说明问题出在Nx封装逻辑,尝试更新相关依赖版本:
npm update @nrwl/capacitor @capacitor/cli @capacitor/androidWindows终端权限或兼容性限制
部分终端对Node.js进程的键盘输入捕获有限制,尝试以管理员身份启动终端,或换用Windows Terminal测试。模拟器列表读取异常
若模拟器列表读取失败,可能导致交互界面异常无响应。打开Android Studio的AVD Manager,确认模拟器可正常启动后,重新运行命令。
内容的提问来源于stack exchange,提问作者Aerith

