Cordova Build - 找不到已安装的 Gradle 版本

标签 cordova gradle

我正在尝试构建一个 Cordova 项目。我正在使用 Ubuntu 17.04。我跑sudo cordova build android但构建失败并显示此消息:
Error: Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio
当我运行 cordova requirements android 时,我觉得很奇怪,我明白了:
Requirements check results for android: Java JDK: installed 1.8.0 Android SDK: installed true Android target: installed android-26,android-25 Gradle: installed /home/viktor/.sdkman/candidates/gradle/4.0.2/bin/gradle
看起来 Gradle 已安装。

Gradle 的路径也出现在 $PATH :
echo $PATH :
/home/viktor/.sdkman/candidates/gradle/current/bin:/home/viktor/bin:/home/viktor/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/viktor/Android/Sdk/tools:/home/viktor/Android/Sdk/tools/bin:/home/viktor/Android/Sdk/platform-tools:/snap/bin
Cordova 版本是 7.0.1。

有人可以帮我弄清楚为什么即使安装了 Gradle,构建也会失败?

编辑:
好的,我尝试通过 cordova create hello com.example.hello HelloWorld 创建一个全新的项目.该项目可以成功构建和运行。我正在尝试构建的项目可能有什么问题?

最佳答案

我终于弄明白了。

项目中的一些文件被锁定,归根用户所有。当我刚刚使用
cordova build android
弹出一条错误消息,说某些文件无法读取。

因此,在构建时,我使用了
sudo cordova build android .

这帮助我摆脱了权限问题,但这也是 Gradle 问题的实际原因......

...当使用 sudo 运行命令时$PATH使用的变量不同(受限)。在我的例子中,这是在没有 sudo 的情况下构建时使用的值。 :
/home/viktor/.sdkman/candidates/gradle/current/bin:/home/viktor/bin:/home/viktor/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/viktor/Android/Sdk/tools:/home/viktor/Android/Sdk/tools/bin:/home/viktor/Android/Sdk/platform-tools:/snap/bin
这是$PATHsudo :
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
如您所见,后者缺少通往 Gradle 的路径。

所以,这里的解决方案是 chmodchown没有 sudo 的项目文件和构建只是使用
cordova build android .

关于Cordova Build - 找不到已安装的 Gradle 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45505428/

相关文章:

应用程序在前台时的 IOS 通知

android-studio - gradle 中的 'all' 和 'each' 有什么区别?

android - 在 OSX : Task 'assembleDebug' not found in root project 上的命令行上构建 Android 项目

cordova - 电话间隙 : Downloading large files on Windows Phones

android - Phonegap 屏幕随着 AdMob 动画闪烁

gradle - pmd gradle 基本配置

android - React Native v0.59.2 android signed apk 卡在启动画面

gradle - 如何在intellij中打开带有子项目的项目以使intellisense工作

angular - ionic 3 中的 HTTP 问题

javascript - 用于监听我自己的网络服务的推送通知的 Cordova 插件