209

I create ionic 2 project and add diagnostic cordova plugin like this :

ionic plugin add cordova.plugins.diagnostic

npm install --save @ionic-native/diagnostic

and add android platform like this :

ionic platform add android@latest

but when build with ionic build android console give me this error :

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

and I try to download manualy gradle.3.3-all.zip and change this distributionUrl var in platform/android/cordova/lib/builders/GradleBuilder.js

 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';

but not working and console give me last error.

I dont know how to add gradle for android@latest version

Reza Mazarlou
  • 2,986
  • 4
  • 22
  • 31
  • Do you have android sdk properly installed? – Christian Benseler Apr 18 '17 at 19:35
  • yes ,this problem solve with define gradle in path system variable , but when run build android ,console give me :"You have not accepted the license agreements of the following SDK components" error – Reza Mazarlou Apr 18 '17 at 20:38
  • You have to install the proper sdk version (via android sdk manager) and accept the terms. https://forum.ionicframework.com/t/you-have-not-accepted-the-license-agreements-of-the-following-sdk-component/69570 – Christian Benseler Apr 19 '17 at 14:15
  • did you solve this issue? I have the same problem – Manspof May 08 '17 at 22:22
  • yes ,I download gradle.zip manually and include it into path. – Reza Mazarlou May 10 '17 at 05:27
  • Similar issue try this -> [Window, Linux & MacOS users - Install Gradle manually](https://stackoverflow.com/questions/30413485/install-gradle-for-using-in-cordova-build-android/45853789#45853789) – Rupesh Yadav Aug 24 '17 at 05:48
  • You will also get this error if you are on Windows and your project path has parenthesis in it. eg. "cordova(something)". (At least until [this issue](https://github.com/apache/cordova-android/issues/824) is fixed.) – Lindsay-Needs-Sleep Aug 30 '19 at 17:00

22 Answers22

271

Life is too short to spend it on messing with paths, etc.

Since I had Homebrew installed on the iMac, I just ran this command:

brew install gradle

The Ionic3 project started to build successfully.

Andrei Drynov
  • 8,362
  • 6
  • 39
  • 39
151

Try installing gradle and include it into your path. Click the link below to get manual. https://gradle.org/install

Arjun G
  • 2,194
  • 1
  • 18
  • 19
  • 5
    Thanks! Rediculous that cordova / ionic still hasn't fixed this. – Roel Jun 28 '17 at 08:43
  • 2
    If you have Android studio and a project using gradle, you can find it for example like: ~/apps/android-studio$ find . -type f -name gradle ./gradle/gradle-4.1/bin/gradle. Sorry for markup, it's the comment. So you could add that to your PATH variable but you will need to keep that version installed. – Vincent Gerris Jan 04 '18 at 22:48
  • 11
    Yes, I found one, added to the path and it worked like a charm, thanks. > export PATH=$PATH:/Users/MyUser/.gradle/wrapper/dists/gradle-4.1-all/xxx/gradle-4.1/bin – Amjad Jan 20 '18 at 00:58
  • don't forget to reboot your computer (windows) – nab Mar 11 '21 at 01:39
111

Just install gradle on linux, Even if Android Studio is installed,

sudo apt install gradle

Nicolas
  • 2,684
  • 1
  • 16
  • 22
  • If you are linux user e.g. ubuntu and you are try to run cordova run android command at that time this commad will help – Hardik Desai May 15 '23 at 09:47
107

For windows users:

Download gradle binary from the link in the answer Gradle Download

Extract the zip file to 'C:\Gradle' or somewhere else

open Edit Environment variable dialog from start menu > Search

Click 'New' under system variables and add as below

Variable Name GRADLE_HOME Variable Value C:\Gradle\gradle-4.0.1

Then choose PATH variable from system variable list

append the gradle path to variable value like this C:\Gradle\gradle-4.0.1\bin

then press win Key+R type cmd then enter > in command terminal type gradle -v

if the setup is correct you will see the gradle installation details

not-a-bot
  • 15
  • 5
rashidnk
  • 4,096
  • 2
  • 22
  • 32
27

I was already installed Android Studio and it's just need to add gradle PATH to ~/.bash_profile on my MacOSX Mojave. Also if gradle is upgraded then path might need to update again.

Example .bash_profile :

export ANDROID_SDK_ROOT="~/Library/Android/sdk"
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export JAVA_HOME=$(/usr/libexec/java_home)
export GRADLE_PATH="~/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1/bin"
export ANDROID_STUDIO="/Applications/Android Studio.app/Contents/MacOS"
export PATH="$PATH:$GRADLE_PATH:$ANDROID_STUDIO"

When edited your .bash_profile then run a command below to read it again.

source ~/.bash_profile
Almas Dusal
  • 613
  • 7
  • 15
  • 1
    I was able to use this method to find my own gradle path and insert it. Thank you. – BVBAccelerate Jul 03 '19 at 17:45
  • How did you find the gradle path? Android Studio is supposed to have installed gradle but it's not being found by `Cordova requirements`. Or is it just an adaptor that Android Studio installs for gradle? – geoidesic Apr 14 '23 at 18:23
  • I forgot it now. Did you find it in ~/.gradle/wrapper/dists/ ? – Almas Dusal Apr 16 '23 at 16:42
18

For Windows you can try below solution

Copy your gradle-->bin path and add it to system environment variable path.

In my case gradle path is

C:\Users\username\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3\bin

This solution worked for me.

Maheshvirus
  • 6,749
  • 2
  • 38
  • 40
14

In Ubuntu, Installing latest version of gradle solved the issue for me.

Try these steps to install the latest version,

sudo add-apt-repository ppa:cwchien/gradle

sudo apt-get update

sudo apt-get install gradle

then build using,

cordova build android or ionic cordova build android

Note: If you install gradle from ubuntu repo, it will install the old version 1.4 and will not help, so sudo apt-get install gradle alone will not help most times, if you did not add the repo ppa:cwchien/gradle earlier

Mohammed Safeer
  • 20,751
  • 8
  • 75
  • 78
13

There is a problem with cordova version 6.4.0 and android 6.2.1 .so,please try with below compatible versions

cordova version must be 6.4.0

sudo npm install -g cordova@6.4.0

Install android in your project

sudo cordova platform add android@6.1.2

 or

sudo ionic platform add android@6.1.2

Veerendra Borra
  • 1,286
  • 14
  • 24
  • 19
    You really shouldn't run npm with sudo! – j2L4e May 01 '17 at 11:28
  • if your system ask permissions then you need to use sudo – Veerendra Borra May 02 '17 at 04:34
  • 10
    If you set it up right, it doesn't need permissions. You download untrusted code that can execute automatically. This should not be done with elevated permissions! See https://docs.npmjs.com/getting-started/fixing-npm-permissions – j2L4e May 02 '17 at 14:02
  • 4
    Simply paste this line `sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}` before first command and remove `sudo`. – Daniel May 05 '17 at 12:23
11
brew install gradle

In short that will save time :) Ionic team please fix this

Madhup Singh Yadav
  • 8,110
  • 7
  • 51
  • 84
6

On Ubuntu 18.04, I intalled gradle with:

sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update
sudo apt-get install gradle

And Ready.

Joe
  • 8,073
  • 1
  • 52
  • 58
Ovidio
  • 61
  • 1
  • 1
  • 1
    Do you really need the first line on Ubuntu 18.04? – elshev Nov 29 '18 at 16:26
  • 3
    Hello Joe, good question, in Ubuntu repositories the version is 3.4.1 but in repository ppa:cwchien/gradle the version is 5.0. Is not really necessary to use the first line, but is important to install the last version. – Ovidio Dec 01 '18 at 16:52
3

If you dont want to install gradle explicitly just to address this issue, you can overcome this by following the workaround as mentioned below:

  1. Look for check_reqs.js file under platforms\android\cordova\lib folder
  2. Edit the else part of androidStudioPath variable null check in get_gradle_wrapper function as below:

Existing code:

else { //OK, let's try to check for Gradle! return forgivingWhichSync('gradle'); }

Modified code:

else { //OK, let's try to check for Gradle! var sdkDir = process.env['ANDROID_HOME']; return path.join(sdkDir, 'tools', 'templates', 'gradle', 'wrapper', 'gradlew'); }

NOTE: This change needs to be done everytime when the android platform is removed and re-added

UPDATE: The above workaround will work fine till Cordova Android version 6.3.0. For Cordova Android 6.4.0 and above, Gradle needs to be installed as a standalone dependency. Please find Cordova Android 6.4.0 release notes for more info on this.

Gandhi
  • 11,875
  • 4
  • 39
  • 63
  • Could someone let me know why this answer is downvoted? – Gandhi Jun 29 '17 at 03:46
  • it does not solve problem, install gradle and set path – rashidnk Jul 13 '17 at 02:58
  • @rashidnk have tried it in my cordova CLI and it works after this tweak. Could you explain what excatly you tried and what failed? – Gandhi Jul 13 '17 at 03:29
  • ok, but i dint downvote, i tried ur solution but it dint wrk, after installing gradle and setting path variable it worked – rashidnk Jul 13 '17 at 05:12
  • @rashidnk check this out where the answer is accpeted - https://stackoverflow.com/questions/43356833/cordova-android-requirements-failed-could-not-find-an-installed-version-of-gra/44592751#44592751 – Gandhi Jul 13 '17 at 06:20
  • This answer does solve the problem, but only for Cordova-Android plugin version below 6.3.0. – Tash Pemhiwa Apr 27 '18 at 15:01
  • @TashPemhiwa You are absolutely right. Updated the answer. – Gandhi Apr 29 '18 at 05:40
3

For Windows users:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
scoop install gradle
Quezako
  • 35
  • 1
  • 10
3

Just install the Gradle through the command line If you are using Mac try

brew install gradle
Kuldeep Kumar
  • 754
  • 1
  • 7
  • 12
2

I am on Microsoft Windows:

I encountered this error after upgrading Android Studio from 2.3.3 to 3.0. I solved it by changing the path to gradle in the PATH environment variable, which is now "gradle-4.1" for Android Studio 3.0 (previously it was "gradle-3.2" for Android Studio 2.3.3)

Regolith
  • 2,944
  • 9
  • 33
  • 50
2

I moved Android folder path to another path and taked this error.

I resolved to this problem in below.

I was changed to Gradle path in system variables. But not path in user variables. You must change to path in system variables

Screenshot this

Alternative Screenshot this

2

I would like to add my two cents to this conversation. If you are a Windows user, you would like to take advantage of Chocolatey

Per https://community.chocolatey.org/packages/gradle, you need to run in your console (it assumes you already have Chocolatey installed).

choco install gradle

If you haven't installed Chocolatey, follow the instructions at https://chocolatey.org/install

Amadeus Sanchez
  • 2,375
  • 2
  • 25
  • 31
1

First of all uninstall ionic and cordova, later set your variables envarionment JAVA_HOME, ANDROID_HOME and PATH then reinstall ionic cordova and add platform like follow:

$ sudo npm install -g ionic cordova

$ ionic platform add android

The ionic will setup gradle packages properly.

  • 4
    My edit was rejected... so I post as a comment : the `npm` keyword is missing after `sudo` in the first line of your code. – Hadrien TOMA May 15 '17 at 08:15
1

I solve this problem

Download gradle.zip from this site https://gradle.org/install. And follow the instructions indicated in the site.

Then open another terminal cmd and execute the command:

Cordova build android --prod --release
End
Peter Tretyakov
  • 3,380
  • 6
  • 38
  • 54
1

In Arch Linux/Manjaro: sudo pacman -S gradle

Marcelo Agimóvel
  • 1,668
  • 2
  • 20
  • 25
0

just install android studio and select your sdk folder as a android studio's sdk default folder and then android studio repair all the damage area and download needed files.

Ajoy Karmakar
  • 671
  • 7
  • 14
0

Download the latest gradle from https://gradle.org/install and set the gradle path upto bin in your PATH variable and export path in the directory you are working in

example : export PATH=/home/abc/android-sdk-linux/tools:/home/abc/android-sdk-linux/platform-tools:/home/abc/android-sdk-linux/tools:/home/abc/android-sdk-linux/platform-tools:/home/abc/Downloads/gradle-4.4.1/bin

I spent my whole day resolve this and ultimately this solution worked for me,

Mandeep Singh
  • 857
  • 8
  • 13
0

If your gradle was working normally before and this came up (probably after you upgraded or reinstalled ionic or cordova - as was my case), you might want to leave the environment variable as is, and check if the folder listed there actually exists.

If it doesn't, rather than reinstalling gradle as mentioned above and changing the value of the environment variable, I had to recreate the old missing folder and copy the gradle files into them.

It seems the value of the gradle location is saved somewhere in Android Studio, and updating the PATH in system variables doesn't affect Android Studio checking for that same location after something triggers a change.

Cedric Ipkiss
  • 5,662
  • 2
  • 43
  • 72