2017-08-04 105 views
0

我正在尝试构建Cordova项目。我使用的是Ubuntu 17.04。我跑sudo cordova build android但构建失败,此消息:Cordova Build - 找不到已安装的Gradle版本

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

它看起来像安装摇篮。

路径摇篮也出现在$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

科尔多瓦版本是7.0.1。

有人能帮我弄清楚为什么构建失败,即使Gradle安装?

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

回答

0

我终于明白了。

项目中的一些文件被锁定,由root拥有。当我用刚刚

cordova build android

的错误消息弹出说,一些文件无法读取。

因此,建立的时候,我用

sudo cordova build android

,帮助我摆脱许可问题,但它也与摇篮问题的真正原因......

...当一个命令与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项目文件,只是使用

cordova build android没有sudo建设。

0

也适用于那些使用旧版android studio的人,这可能是问题所在。我unistalled它并安装了android studio 3(2017年10月)并安装了所有的构建工具,更新了cordova模块(npm update cordova),现在所有东西都像发条一样工作! Windows7用户!

相关问题