我创建ionic 2项目,并添加诊断cordova插件,如下所示:

ionic plugin add cordova.plugins.diagnostic

npm install --save @ionic-native/diagnostic

并像这样添加android平台:

ionic platform add android@latest

但当构建与ionic构建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

我尝试下载手动gradle.3.3-all.zip,并在platform/android/cordova/lib/builders/GradleBuilder.js中更改这个distributionUrl变量

 var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'https\\://services.gradle.org/distributions/gradle-3.3-all.zip'

to:

var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'file:///E:/gradles/gradle-3.3-all.zip';

但不工作和控制台给我最后一个错误。

我不知道如何为android@latest版本添加gradle


当前回答

如果你不想明确地安装gradle来解决这个问题,你可以通过下面提到的解决方法来克服这个问题:

在platforms\android\cordova\lib文件夹下查找check_requests .js文件 编辑get_gradle_wrapper函数中androidStudioPath变量null检查的else部分,如下所示:

现有的代码:

其他{ //好的,让我们试着检查Gradle! 返回forgivingWhichSync(“它”); }

修改代码:

其他{ //好的,让我们试着检查Gradle! var sdkDir = process.env['ANDROID_HOME']; 返回路径。join(sdkDir, 'tools', 'templates', 'gradle', 'wrapper', 'gradlew'); }

注意:每次移除和重新添加android平台时都需要做这个更改

更新:上述解决方案将工作良好,直到Cordova Android版本6.3.0。对于Cordova Android 6.4.0及以上版本,Gradle需要作为独立的依赖项安装。请找到Cordova Android 6.4.0发布说明以获得更多信息。

其他回答

cordova 6.4.0版本和android 6.2.1版本有问题,请尝试以下兼容版本

Cordova版本必须为6.4.0

Sudo NPM install -g cordova@6.4.0

在你的项目中安装android

Sudo cordova平台加android@6.1.2

 or

Sudo离子平台加android@6.1.2

只需安装android studio并选择您的SDK文件夹作为android studio的SDK默认文件夹,然后android studio修复所有损坏区域并下载所需的文件。

我移动Android文件夹路径到另一个路径,并采取这个错误。

我在下面解决了这个问题。

我在系统变量中被更改为Gradle path。而不是用户变量中的path。在系统变量中必须更改为path

这个截图

替代截图

我想对这次谈话发表我的意见。如果你是Windows用户,你会想要利用Chocolatey

根据https://community.chocolatey.org/packages/gradle,您需要运行 在你的控制台(假设你已经安装了Chocolatey)。

choco install gradle

如果您还没有安装Chocolatey,请按照https://chocolatey.org/install上的说明进行操作

如果你不想明确地安装gradle来解决这个问题,你可以通过下面提到的解决方法来克服这个问题:

在platforms\android\cordova\lib文件夹下查找check_requests .js文件 编辑get_gradle_wrapper函数中androidStudioPath变量null检查的else部分,如下所示:

现有的代码:

其他{ //好的,让我们试着检查Gradle! 返回forgivingWhichSync(“它”); }

修改代码:

其他{ //好的,让我们试着检查Gradle! var sdkDir = process.env['ANDROID_HOME']; 返回路径。join(sdkDir, 'tools', 'templates', 'gradle', 'wrapper', 'gradlew'); }

注意:每次移除和重新添加android平台时都需要做这个更改

更新:上述解决方案将工作良好,直到Cordova Android版本6.3.0。对于Cordova Android 6.4.0及以上版本,Gradle需要作为独立的依赖项安装。请找到Cordova Android 6.4.0发布说明以获得更多信息。