You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行ionic cordova run android无响应,Android模拟器未启动且插件报错

问题根源分析

从你的报错日志和环境信息来看,有两个核心问题导致命令无响应、模拟器未启动:

  1. Node版本冲突:你用nvm安装的全局Node是v8.4.0,但系统当前运行的Node是v9.4.0,版本不一致会导致依赖加载异常,触发后续的脚本错误。
  2. cordova-plugin-fcm插件兼容问题:旧版的cordova-plugin-fcm脚本(fcm_config_files_process.js第80行)在Node v8+环境下处理输出时,传递了非字符串/Buffer类型的参数,触发了TypeError [ERR_INVALID_ARG_TYPE],直接中断了Cordova的构建流程,导致后续模拟器启动的逻辑根本没机会执行。

分步解决方案

1. 统一Node版本(优先处理)

因为你使用nvm管理Node版本,先确保当前终端使用的Node版本和全局CLI依赖的版本一致:

  • 打开终端,执行 nvm use 8.4.0 切换到全局CLI对应的Node版本
  • 执行 node -v 确认版本显示为 v8.4.0
  • (可选优化)建议切换到Node v10.x长期支持版本(比如 nvm install 10.24.1 && nvm use 10.24.1),v9.x是不稳定的过渡版本,本身就容易出现兼容问题。

2. 替换FCM插件(推荐方案)

旧版cordova-plugin-fcm已经停止维护,存在大量Node和Cordova版本兼容问题,推荐使用社区维护的替代插件:

  • 先卸载旧插件:
    ionic cordova plugin remove cordova-plugin-fcm
    
  • 安装兼容的替代插件:
    ionic cordova plugin add cordova-plugin-fcm-with-dependecy-updated
    
  • 同步Android平台配置:
    ionic cordova prepare android
    

如果你暂时不想替换插件,可以临时手动修复报错脚本:

  • 打开文件 C:\Users\pkhon\WebstormProjects\fcmPractice\myApp\plugins\cordova-plugin-fcm\scripts\fcm_config_files_process.js
  • 找到第80行的stream.write()调用,将参数强制转为字符串类型,比如修改为:
    stream.write(String(yourVariable))
    
    确保传递给write()的参数是字符串或Buffer类型。

3. 验证Android模拟器可用性

确保模拟器本身可以正常启动,避免因为模拟器问题导致命令无响应:

  • 打开Android Studio的AVD Manager,检查已创建的模拟器状态是否为「可用」
  • 手动启动模拟器,确认能正常进入系统界面
  • 如果模拟器无法启动,尝试创建一个新的模拟器(推荐选择API 28或更低版本,和你的Cordova Android 7.0.0版本兼容)

4. 重新运行命令

完成上述步骤后,执行带详细日志的命令排查问题:

ionic cordova run android --verbose

如果构建流程正常执行,模拟器会自动启动并安装应用。

额外注意事项

  • Ionic 3和Cordova 8.0.0、Android 7.0.0的组合是兼容的,但务必保证所有插件版本与当前环境匹配
  • 避免同时使用多个Node版本,用nvm切换时要确保终端会话使用的版本一致

内容的提问来源于stack exchange,提问作者zuest

火山引擎 最新活动