i just started to make my first native cordova app from cordova official tutorial, and when I run
ayam@laptop:~/Documents/learn/hello$ cordova requirements
<
This problem has possibly 3 origins:
I have explained how to solve all of these on macOS below (Windows might be slightly different)
I solved it by doing this in macOS terminal:
PATH=$PATH:$HOME/Library/Android/Sdk/emulator
PATH=$PATH:$HOME/Library/Android/Sdk/tools
PATH=$PATH:$HOME/Library/Android/Sdk/tools/bin
PATH=$PATH:$HOME/Library/Android/Sdk/platform-tools
export ANDROID_HOME=$HOME/Library/Android/
These are all the required path variables by Cordova.
Important:
Make sure that there is a folder called /Android/
inside your user folder inside Library
!
It used to be installed directly to the user folder instead of in Library
so therefor the confusion.
You need to use JAVA SE v 1.8 for Cordova to work.
Do this in the terminal:
/usr/libexec/java_home -V
and check if that version is available or not. If not you can research how to install it in there with homebrew. Then try the above command again to double check it installed properly.
Do this in the terminal:
echo $JAVA_HOME
If you see nothing that means your $JAVA_HOME
variable is not exported properly. You can solve this by doing this in the terminal:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
That's all!
To make changes permanent on your system and the variable keep working after close the terminal, ou after a restart use:
nano ~/.bash_profile
Add lines:
export ANDROID_HOME=/YOUR_PATH_TO/android-sdk
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/emulator
To make it available immediately run
source ~/.bash_profile
Reopen terminal and check if it worked:
echo $ANDROID_HOME
echo $JAVA_HOME
This problem arises when there is no virtual device set up in the system (No target version or no target device). I am not sure if that is a must. You can add a device using SDK manager.
In SDK manager, Add an android repository (For example - Android 5.0.1 API 21) and all dependencies like SDK Tools etc.
Then try cordova requirements. If you are able to run an instance of emulator then this error will go off..(It worked for me that way!)
Hope this helps..
If you are ready this in 2019 here is what you need to for this problem, earlier that would have been a path variables issues regardless of what OS it is. While we are dealing with Open JDK 11+ just for being pretty advanced or updated to latest releases.
Step 1: Remove all available JavaVirtualMachines Step 2: Check whether your system is Java free (No Java JVM or JRE) Step 3: Install Java 8 JDK ( As Cordova is supported by Java 1.8 and corresponding JREs) Step 4: Install Android Targets using sdkmanager command. Step 5: Install whatever you need from requirements and set their path in mac using bash profile or temporary paths. Or you may need to set it again and again.
You are good to go, Sorry I could not share the commands over here as they are already available in Google. No Offence! I knew you were close fixing this, but I hope even this helps you understanding Cordova requirements.
In Android Studio, you can use cmd + ;
for Mac or Ctrl + Alt + Shift + S
for Windows/Linux to pull up the Project Structure dialog. In there, you can set the JDK location as well as the Android SDK location.
Add this to your .bashrc or .zshrc config so that the JAVA_HOME variable points to the Java version used by Android.