构建项目时installApolloCodegen失败,附错误日志及环境信息
构建项目时installApolloCodegen步骤失败(SSL签名错误)
问题详情
构建Android项目时,执行installApolloCodegen步骤失败,抛出SSL签名相关的EPROTO错误。
环境信息
- Node版本:
v16.17.0 - npm版本:
8.5.0 - 操作系统:Windows 10
- Android Studio版本:Chipmunk
错误日志
npm ERR! Windows_NT 10.0.19042 npm ERR! argv "D:\\AndroidStudioWorkspace\\wowe-android-app\\app\\.gradle\\nodejs\\node-v6.7.0-win-x64\\node.exe" "D:\\AndroidStudioWorkspace\\wowe-android-app\\app\\.gradle\\nodejs\\node-v6.7.0-win-x64\\node_modules\\npm\\bin\\npm-cli.js" "install" "apollo-codegen@0.17.0-alpha.13" "--save" "--save-exact" npm ERR! node v6.7.0 npm ERR! npm v3.10.3 npm ERR! code EPROTO npm ERR! errno EPROTO npm ERR! syscall write npm ERR! write EPROTO 101057795:error:1408D07B:SSL routines:ssl3_get_key_exchange:bad signature:openssl\\ssl\\s3_clnt.c:2010: npm ERR! npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! <https://github.com/npm/npm/issues> npm ERR! Please include the following file with any support request: npm ERR! D:\\AndroidStudioWorkspace\\wowe-android-app\\app\\build\\apollo-codegen\\npm-debug.log
解决方法
1. 统一Gradle使用的Node版本
错误日志显示,Gradle实际调用的是node-v6.7.0,和本地的Node v16.17.0版本差距过大,导致SSL协议兼容性问题。
- 配置Gradle使用本地已安装的Node:在项目的
app/build.gradle中添加:android { // 其他已有配置... apollo { // 替换成你本地Node的实际安装路径 nodeExecutable = "C:\\Program Files\\nodejs\\node.exe" } } - 也可以在项目根目录的
gradle.properties中设置:apollo.nodeExecutable=C:\\Program Files\\nodejs\\node.exe
2. 适配旧Node版本的SSL配置(若无法更换Node)
如果必须使用Gradle下载的旧Node版本,尝试:
- 升级该Node环境下的npm到兼容版本:进入
D:\\AndroidStudioWorkspace\\wowe-android-app\\app\\.gradle\\nodejs\\node-v6.7.0-win-x64目录,执行npm install npm@3.10.10 -g - 临时关闭SSL严格校验(仅临时测试使用,不推荐生产环境):执行
npm config set strict-ssl false后重新安装
3. 清理缓存后重试
- 清理npm缓存:执行
npm cache clean --force - 删除项目中的
.gradle/nodejs目录,让Gradle重新处理Node环境 - 重新执行项目构建命令
内容的提问来源于stack exchange,提问作者user2934930
相关产品推荐
相关产品推荐

