尝试添加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-res
或sharp
时遇到问题,请在您的问题中添加日志。
【讨论】:
【参考方案3】:在尝试使用 matest 和以前的版本安装不同的库(如sharp和cordova-res)后,我没有解决这个错误
所以,我已将节点版本降级到 10.24.1,然后我再次直接安装平台,它可以工作
【讨论】:
以上是关于尝试添加android平台时出现离子错误的主要内容,如果未能解决你的问题,请参考以下文章
使用串行插件时出现 Ionic Capacitor Android 错误 - 连接到外部设备时出现 Cordova_not_available
使用 django 作为离子应用程序的后端时出现 CORS 错误