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

时间:2017-08-04 11:16:19

标签: cordova gradle

我正在尝试建立一个Cordova项目。我正在使用Ubuntu 17.04。我运行 "dependencies": { "@angular/animations": "^4.0.0", "@angular/common": "^4.0.0", "@angular/compiler": "^4.0.0", "@angular/core": "^4.0.0", "@angular/forms": "^4.0.0", "@angular/http": "^4.0.0", "@angular/platform-browser": "^4.0.0", "@angular/platform-browser-dynamic": "^4.0.0", "@angular/router": "^4.0.0", "core-js": "^2.4.1", "rxjs": "^5.4.1", "zone.js": "^0.8.14" }, "devDependencies": { "@angular/cli": "1.2.6", "@angular/compiler-cli": "^4.0.0", "@angular/language-service": "^4.0.0", "typescript": "~2.3.3" } 但是构建失败并显示以下消息:

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

看起来像是安装了Gradle。

Gradle路径也会显示在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

Cordova版本是7.0.1。

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

修改 好的,我试图通过/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创建一个全新的项目。该项目可以成功构建和运行。我正在尝试构建的项目可能出现什么问题?

3 个答案:

答案 0 :(得分:1)

在Ubuntu Mate 18.04上发生了同样的事情,这是我如何解决的问题,

1)打开〜/ .bashrc文件。 2)将这些行添加到末尾。

export ANDROID_HOME=~/Android/Sdk/
export PATH=${PATH}:~/Android/Sdk/platform-tools:~/Android/Sdk/tools
export GRADLE_ANDROID_HOME=/opt/android-studio/gradle
export PATH=$PATH:$GRADLE_ANDROID_HOME/gradle-4.6/bin
export PATH=$PATH:$GRADLE_ANDROID_HOME/m2repository

请记住要根据您的设置替换这些路径(如果您使用Flatpaks,snap..etc)。我不知道为什么有m2repository。但是,如果没有它,cordova的构建将在我的系统上失败。

答案 1 :(得分:0)

我终于明白了。

项目中的某些文件已被锁定,由root拥有。当我只使用

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

这是$PATH sudo

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

正如您所看到的,后者缺少Gradle的路径。

所以,这里的解决方案是chmodchown项目文件并在没有sudo的情况下使用

进行构建

cordova build android

答案 2 :(得分:0)

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