When I installed Java JDK 1.8.x it initially was working, when I rebooted the next day after shutting down over night I get this when I build:
$ ionic build android
Updated the hooks directory to have execute permissions
Running command: d:\installs\nodejs\node.exe d:\htdocs\publicworks\mobile\hooks\after_prepare\010_add_platform_class.js d:/htdocs/publicworks/mobile
add to body class: platform-android
Running command: d:\htdocs\publicworks\mobile\platforms\android\cordova\build.bat
ANDROID_HOME=c:\Users\mtpultz\AppData\Local\Android\android-sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_45\bin
Running: d:\htdocs\publicworks\mobile\platforms\android\gradlew cdvBuildDebug -b d:\htdocs\publicworks\mobile\platforms\android\build.gradle -Dorg.gradle.daemon=true
ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jdk1.8.0_45\bin
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
d:\htdocs\publicworks\mobile\platforms\android\cordova\node_modules\q\q.js:126
throw e;
^
Error code 1 for command: cmd with args: /s /c "d:\htdocs\publicworks\mobile\platforms\android\gradlew cdvBuildDebug -b d:\htdocs\publicworks\mobile\platforms\android\build.gradle -Dorg.gradle.daemon=true"
But Java is most definitely installed in this directory and nowhere else??? In my terminal:
java -version
Produces the proper output for my JDK:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
The environment variables are set to:
JAVA_HOME =
C:\Program Files\Java\jdk1.8.0_45\bin
and the path contains:
D:\installs\nodejs;
C:\Users\mtpultz\AppData\Roaming\npm;
D:\installs\apache-ant\bin;
C:\Users\mtpultz\AppData\Local\Android\android-sdk\tools;
C:\Users\mtpultz\AppData\Local\Android\android-sdk\platform-tools;
Any suggestions?
after wasting 3 days finally i got some solutions. these are definitely works when you found these errors.
1.Error: JAVA_HOME is set to an invalid directory
JAVA_HOME should be set to the home directory of java and not to bin. So replace this:
C:\Program Files\Java\jdk1.8.0_45\bin with
C:\Program Files\Java\jdk1.8.0_45 java/bin dir is added to PATH system variable to run java from anywhere
check your environments variables 1. android platforms tools 2. android tools 3. sdk location 4. git location
the only solution is
cordova platform add android --nofetch
For Linux user:
$sudo gedit $HOME/.bashrc
write at end
$source ~/.bashrc
after that open
$sudo gedit /etc/environment
and add at end
$source /etc/environment
Make sure that your JAVA_HOME is having the following path and install JDK SE.
Make sure you use the Java SE SDK and not the Java EE SDK, that solved the problem for me.
JAVA_HOME
should be set to the home directory of java and not to bin. So replace this:with
java/bin
dir is added toPATH
system variable to run java from anywhere.Do one thing. This will Help You
Remove "\bin" from your JAVA_HOME path. Mean give path only till.
It will work with you.