尝试添加android平台时出现离子错误

Posted

技术标签:

【中文标题】尝试添加android平台时出现离子错误【英文标题】:Ionic error when try to adding android platform 【发布时间】:2021-09-18 16:26:07 【问题描述】:

当我尝试使用以下命令添加 android 平台时:ionic cordova platform add android,我收到此错误:

> ionic cordova resources android --force
> cordova-res.cmd android
[cordova-res] D:\tools\nvm\v14.17.2\node_modules\cordova-res\node_modules\sharp\lib\constructor.js:34
[cordova-res]   throw new Error(error);
[cordova-res]   ^
[cordova-res]
[cordova-res] Error:
[cordova-res] Something went wrong installing the "sharp" module
[cordova-res]
[cordova-res] Cannot find module '../build/Release/sharp.node'
[cordova-res] Require stack:
[cordova-res] - D:\tools\nvm\v14.17.2\node_modules\cordova-res\node_modules\sharp\lib\constructor.js
[cordova-res] - D:\tools\nvm\v14.17.2\node_modules\cordova-res\node_modules\sharp\lib\index.js
[cordova-res] - D:\tools\nvm\v14.17.2\node_modules\cordova-res\dist\image.js
[cordova-res] - D:\tools\nvm\v14.17.2\node_modules\cordova-res\dist\cli.js
[cordova-res] - D:\tools\nvm\v14.17.2\node_modules\cordova-res\dist\index.js
[cordova-res] - D:\tools\nvm\v14.17.2\node_modules\cordova-res\bin\cordova-res
[cordova-res]
[cordova-res] - Run "npm rebuild --verbose sharp" and look for errors
[cordova-res] - Consult the installation documentation at https://sharp.pixelplumbing.com/install
[cordova-res] - Search for this error at https://github.com/lovell/sharp/issues
[cordova-res]
[cordova-res]     at Object.<anonymous> (D:\tools\nvm\v14.17.2\node_modules\cordova-res\node_modules\sharp\lib\constructor.js:34:9)
[cordova-res]     at Module._compile (internal/modules/cjs/loader.js:1085:14)
[cordova-res]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
[cordova-res]     at Module.load (internal/modules/cjs/loader.js:950:32)
[cordova-res]     at Function.Module._load (internal/modules/cjs/loader.js:790:14)
[cordova-res]     at Module.require (internal/modules/cjs/loader.js:974:19)
[cordova-res]     at require (internal/modules/cjs/helpers.js:92:18)
[cordova-res]     at Object.<anonymous> (D:\tools\nvm\v14.17.2\node_modules\cordova-res\node_modules\sharp\lib\index.js:3:15)
[cordova-res]     at Module._compile (internal/modules/cjs/loader.js:1085:14)
[cordova-res]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
[ERROR] An error occurred while running subprocess cordova-res.

        cordova-res.cmd android exited with exit code 1.

        Re-running this command with the --verbose flag may provide more information.

我已经用 npm i -g cordova-res 安装了 cordova-res 但它没有解决错误

这是我的完整环境:

Ionic:

   Ionic CLI                     : 6.16.3 (D:\tools\nvm\v14.17.2\node_modules\@ionic\cli)
   Ionic Framework               : @ionic/angular 5.5.2
   @angular-devkit/build-angular : 12.0.1
   @angular-devkit/schematics    : 12.0.5
   @angular/cli                  : 12.0.1
   @ionic/angular-toolkit        : 4.0.0

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : android 9.1.0
   Cordova Plugins   : no whitelisted plugins (9 plugins total)

Utility:

   cordova-res : not installed globally
   native-run  : not installed globally

System:

   Android SDK Tools : 26.1.1 (C:\tools\android)
   NodeJS            : v14.17.2 (D:\tools\nodejs\node.exe)
   npm               : 6.14.13
   OS                : Windows 10

Environment: #just change here my credential

   HTTP_PROXY       : http://myuser:password@proxyurl:8000
   http_proxy       : http://myuser:password@proxyurl:8000
   HTTPS_PROXY      : http://myuser:password@proxyurl:8000
   https_proxy      : http://myuser:password@proxyurl:8000
   IONIC_HTTP_PROXY : http://myuser:password@proxyurl:8000
   PROXY            : http
   proxy            : http

不知道是不是和node版本有关,是否必须降级 必须将所有库保留为最新版本(离子和角度)

【问题讨论】:

【参考方案1】:

我建议卸载cordova-res,然后全局重新安装

从您的应用中删除它:npm uninstall cordova-res

全局安装:npm install -g cordova-res

你是说你已经运行了npm i -g cordova-res,但是在你的完整环境中:

Utility:
cordova-res : not installed globally

【讨论】:

我之前尝试过所有这些步骤,但没有任何反应。是的,当我看到“未全局安装”时,我不明白为什么(我一次又一次尝试了相同的命令 npm i -g cordova-res【参考方案2】:

在您的日志中:Something went wrong installing the "sharp" module

所以,首先,您应该用cordova-res 解决问题。你可以尝试安装以前版本的cordova-res

npm install -g cordova-res@0.15.2 或以下

您可以在此处找到cordova-res 版本列表: https://www.npmjs.com/package/cordova-res(版本标签)

如果这没有帮助,那么您可以尝试全局安装sharp 模块(https://www.npmjs.com/package/sharp):

npm install -g sharp

如果您在安装cordova-ressharp 时遇到问题,请在您的问题中添加日志。

【讨论】:

【参考方案3】:

在尝试使用 matest 和以前的版本安装不同的库(如sharp和cordova-res)后,我没有解决这个错误

所以,我已将节点版本降级到 10.24.1,然后我再次直接安装平台,它可以工作

【讨论】:

以上是关于尝试添加android平台时出现离子错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试离子构建时出现角度firebase构建错误

导入模块时出现离子3路径错误

使用串行插件时出现 Ionic Capacitor Android 错误 - 连接到外部设备时出现 Cordova_not_available

使用 django 作为离子应用程序的后端时出现 CORS 错误

如何解决在离子3中实现搜索栏的管道时出现的错误(管道搜索找不到或未找到)

在离子2处失败'离子cordova运行android'