cordova platform add android not working while listing Android targets
Solution 1:
To work, this cordova command needs to use some programs located into your sdk/tools
directory. You need also have installed apache ant.
Then you must add these directories into your PATH
system variable:
Background:
- let's assume you have installed your Android SDK to the
c:\sdk\android
directory - you have installed you Apache ant to the
c:\tools\apache-ant
directory
Then you must create two system variables:
-
ANDROID_HOME
with thec:\sdk\android
value -
ANT_HOME
with thec:\tools\apache-ant
value
Finally, you must modify the PATH
variable and add those two to the end of the PATH
' value:
;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
NOTE: for those who uses Linux, the instruction differs a bit.
More documentation available here.
Solution 2:
For those chosen ones, who preferred Linux development environment
Requirements
First of all, you will need a few things to get started. They are: Android SDK
and Apache Ant
. Of course, you will need Java SDK
(JDK) installed.
To get Android SDK working for all users, you shall need to modify the /etc/environment
file and then restart your PC. But if you do not want that hard way - follow me, think of yourself as the only PC user. And use /home/YOUR_USERNAME/.bashrc
file to edit.
Let's remember your home path one time to prevent further long lines. Add this one to your /home/YOUR_USERNAME/.bashrc
:
export HOME="/home/YOUR_USERNAME"
We'll then use the $HOME
notation when we want to say "/home/YOUR_USERNAME directory
".
Setting up Android SDK
Download the Android SDK archive and unzip it somewhere. Let's say, yo your home directory, $HOME/adt-bundle/
.
Add these lines to your $HOME/.bashrc
:
export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
Setting up Ant
Just as with the Android SDK, download an archive and unzip it to your home directory. Then add these to your .bashrc
:
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
I've installed one via the apt-get
so this did not affect my .bashrc
.
Applying changes
To make these changes work, you should either work in a new terminal window (opened after the changes), or run source ~/.bashrc
to make changes available in the current terminal window.
Wrapping up
At the end, you will got:
- Two directories at your home directory -
ant
andandroid-bundle
-
A few lines, added to your
.bashrc
:export ANDROID_HOME="$HOME/android-bundle/sdk/tools" export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools" export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH" export ANT_HOME="$HOME/ant" export PATH="$PATH:$ANT_HOME/bin"
Solution 3:
Run the "android" command from your adt\sdk\tools folder and install the latest Tools and SDK. Also make sure your PATH has the right variables.
For this you will need ANT to be installed , a JAVA JDK and an Android SDK installed
JAVA_HOME (C:\Program Files\Java\jdk)
ANT_HOME ({ant location}\apache\apache-ant)
ANDROID_HOME ({android sdk location}\android-sdk)
Add these to your PATH variable like %ANT_HOME%/bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%JAVA_HOME%\bin
Close and re-open your cmd and run your command again.
Similiar to PhoneGap/Cordova Android Development
Solution 4:
I'm not sure if this is your problem, but I've encountered similar errors when the cordova library cache gets polluted with something corrupted. To fix it, you just need to delete the cordova cache, and it will automatically repopulate next time you use 'cordova'.
On OS X, this directory is ~/.cordova. On Windows, I assume it's .cordova in your users home directory still.
Solution 5:
The answer is "All of the Above". Do as mentioned with the environment variables, however, also do this:
C:\Users{YOUR_NAME}.cordova\lib\android\cordova\3.5.0\framework edit the project.properties file and change target=android-19 to target=android-20.
Presumably this will need to be changed for the next rendition of android sdk's as well until this little issue gets resolved.