gradle:未安装(cordova 要求)

Posted

技术标签:

【中文标题】gradle:未安装(cordova 要求)【英文标题】:gradle: not installed (cordova requirements) 【发布时间】:2018-11-02 04:41:20 【问题描述】:

我试着输入:

科尔多瓦要求

结果如下:

检测到 android Studio 项目 android 的需求检查结果: Java JDK:已安装 1.8.0 Android SDK:已安装 true Android 目标:安装 android-27,android-26 Gradle:未安装 无法读取未定义的属性“长度” (node:2392) UnhandledPromiseRejectionWarning: CordovaError: 一些需求检查失败 在 C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\src\cli.js:414:27 在 _fulfilled (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:787:54) 在 self.promiseDispatch.done (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:816:30) 在 Promise.promise.promiseDispatch (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:749:13) 在 C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:557:44 刷新时 (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:108:17) 在 _combinedTickCallback (internal/process/next_tick.js:131:7) 在 process._tickCallback (internal/process/next_tick.js:180:9) (节点:2392)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:1) (节点:2392)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程

所以我尝试手动安装 gradle。安装 gradle 后,我尝试输入:

gradle -v

然后给出结果:

----------------------------------- ------------- Gradle 4.7 -------------------------------------------------- ---------- 构建时间:2018-04-18 09:09:12 UTC 修订: b9a962bf70638332300e7f810689cb2febbd4a6c Groovy:2.4.12 Ant:2017 年 2 月 2 日编译的 Apache Ant(TM) 版本 1.9.9 JVM:1.8.0_162(甲骨文公司 25.162-b12) 操作系统:Windows 7 6.1 amd64

这意味着 gradle 已安装。但是当我尝试再次使用类型来满足要求时:

科尔多瓦要求

它仍然给我和以前一样的结果:

检测到 Android Studio 项目 android 的需求检查结果: Java JDK:已安装 1.8.0 Android SDK:已安装 true Android 目标:安装 android-27,android-26 Gradle:未安装 无法读取未定义的属性“长度” (node:2392) UnhandledPromiseRejectionWarning: CordovaError: 一些需求检查失败 在 C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\src\cli.js:414:27 在 _fulfilled (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:787:54) 在 self.promiseDispatch.done (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:816:30) 在 Promise.promise.promiseDispatch (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:749:13) 在 C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:557:44 刷新时 (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:108:17) 在 _combinedTickCallback (internal/process/next_tick.js:131:7) 在 process._tickCallback (internal/process/next_tick.js:180:9) (节点:2392)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:1) (节点:2392)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程

然后,我再次尝试使用命令在 cmd 中安装 gradle:

npm install gradle

结果如下:

+gradle@1.0.9 在 182.961 秒内添加了来自 14 个贡献者的 20 个包 [!] 发现 13 个漏洞 [已审核 4232 个包] 严重性 2 低 | 11 中等 运行“npm audit”以获取更多详细信息

然后我再次尝试检查需求,它给了我相同的结果:

科尔多瓦要求

它仍然给我和以前一样的结果

检测到 Android Studio 项目 android 的需求检查结果: Java JDK:已安装 1.8.0 Android SDK:已安装 true Android 目标:安装 android-27,android-26 Gradle:未安装 无法读取未定义的属性“长度” (node:2392) UnhandledPromiseRejectionWarning: CordovaError: 一些需求检查失败 在 C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\src\cli.js:414:27 在 _fulfilled (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:787:54) 在 self.promiseDispatch.done (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:816:30) 在 Promise.promise.promiseDispatch (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:749:13) 在 C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:557:44 刷新时 (C:\Users\dell\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:108:17) 在 _combinedTickCallback (internal/process/next_tick.js:131:7) 在 process._tickCallback (internal/process/next_tick.js:180:9) (节点:2392)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:1) (节点:2392)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程

当我再次检查带有 type 的 gradle 版本时:

gradle -v

它仍然提供与 4.7 相同的版本,结果:

----------------------------------- ------------- Gradle 4.7 -------------------------------------------------- ---------- 构建时间:2018-04-18 09:09:12 UTC 修订: b9a962bf70638332300e7f810689cb2febbd4a6c Groovy:2.4.12 Ant:2017 年 2 月 2 日编译的 Apache Ant(TM) 版本 1.9.9 JVM:1.8.0_162(甲骨文公司 25.162-b12) 操作系统:Windows 7 6.1 amd64

我的问题是,为什么还没有安装 gradle? 请帮助我,我不知道如何再次修复它。 谢谢!

我使用: 科尔多瓦:8.0.0 节点:8.11.2 java jdk:1.8.0 毕业:4.7 Windows 7 64 位

【问题讨论】:

如果你运行cordova build ***.com/questions/30413485/…会发生什么 你也可以试试这个***.com/a/42639125/6587502 @deathangel908 结果为prntscr.com/jlj0xb 我猜是因为未安装gradle,对吧? @AshutoshSagar 好的,我会试试的。谢谢 你能调试一下这个东西吗?我的意思是 Cordova 看起来像是在节点内运行 js 的东西,你可以在 check_recks.js:139 内设置断点。此外,您可以在cordova 内部创建问题,因为当找不到 gradle 时,Cordova 至少应该保持不变,而不是抛出未定义异常的 .length 【参考方案1】:

请为您的系统变量添加路径。 IE 打开系统 -> 高级 -> 环境变量 在系统变量部分下单击路径,然后单击编辑按钮 他们将您的路径添加到 gradle/bin。

【讨论】:

有关此答案的更完整版本,请参阅:***.com/questions/43480076/…

以上是关于gradle:未安装(cordova 要求)的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 在 Android Studio 或您的系统上找不到安装的 Gradle 版本以安装 gradle 包装器

ionic3打包出错ionic cordova build android(系列一):could not find an installed version of gradle either in a

在 Android SDK for Cordova 7.0.1 中安装有啥要求

Cordova 要求抛出“foreach”未定义

启用 CORS 从 Cordova 应用程序调用 JSON REST

cordova windows 构建错误(未检测到所选目标的有效 MSBuild) - 检查所有 Cordova 要求