Ionic Failed to find 'JAVA_HOME' environment variable

[15:14:04]: Shell command exited with exit status 1 instead of 0.

You have been opted out of telemetry. To change this, run: cordova telemetry on.
Generating initial manifest for Ionic Deploy…
Ionic Deploy initial manifest successfully generated.
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/opt/android-sdk (recommended setting)
ANDROID_HOME=/opt/android-sdk (DEPRECATED)
Failed to find ‘JAVA_HOME’ environment variable. Try setting it manually.

same environment i’ve been using to build android via platform, but this time it gives this error. how do i fix?

failed build: app/7b074fb3/build/builds/7904064

successful build: app/7b074fb3/build/builds/7795934

[12:47:12]: Shell command exited with exit status 1 instead of 0.

You have been opted out of telemetry. To change this, run: cordova telemetry on.
Generating initial manifest for Ionic Deploy…
Ionic Deploy initial manifest successfully generated.
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/opt/android-sdk (recommended setting)
ANDROID_HOME=/opt/android-sdk (DEPRECATED)
Failed to find ‘JAVA_HOME’ environment variable. Try setting it manually.

±-----±----------------------±------------+
| fastlane summary |
±-----±----------------------±------------+
| Step | Action | Time (in s) |
±-----±----------------------±------------+
| 1 | default_platform | 0 |
| 2 | build_summary | 0 |
| 3 | add_git_credentials | 0 |
| 4 | get_appflow_config | 0 |
| 5 | detect_native_type | 0 |
| 6 | dependency_install | 109 |
| 7 | get_web_dir | 0 |
| 8 | set_java_home | 3 |
| 9 | modify_config_xml | 0 |
| 10 | download_credential | 1 |
| 11 | build_pro_app | 179 |
| 12 | add_cordova_to_index | 0 |
| :boom: | build_android_cordova | 13 |
| 14 | upload_logs | 5 |
±-----±----------------------±------------+

[12:47:12]: fastlane finished with errors
/usr/local/bundle/bin/fastlane: \e[31m[!] Shell command exited with exit status 1 instead of 0. (FastlaneCore::Interface::FastlaneShellError)

You have been opted out of telemetry. To change this, run: cordova telemetry on.
Generating initial manifest for Ionic Deploy…
Ionic Deploy initial manifest successfully generated.
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/opt/android-sdk (recommended setting)
ANDROID_HOME=/opt/android-sdk (DEPRECATED)
Failed to find ‘JAVA_HOME’ environment variable. Try setting it manually.
\e[0m
Running after script…
$ run “clean-up”
ERROR: Job failed: command terminated with exit code 1

facing the same issue

  1. Please locate your Java SDK 1.8 bin folder

2a. If you are on Windows, you will need to make sure your environment variables are setup correctly.
Add JAVA_HOME → location of your JAVA SDK 1.8 bin folder

2b. If you are on a Mac:
Enter the following command into your terminal:
export JAVA_HOME="location of your JAVA SDK 1.8 bin folder">>~/.bash_profile

We are facing the same issue. We use trapeze.dev which modifies the code before the build. Our local builds work, but the JAVA_HOME env variable is not set inside the Appflow environment and build in AppFlow cloud fails. Does anybody know how to set the variable properly in the AppFlow? We need to be sure that the same variable value will work on both iOS and Android agents and that it will work without our manual change when Ionic updates the AppFlow infrastructure to newer versions.

1 Like

I am also encountering a related error. Did you ever find the path to Java 11 on Appflow? I need to find this so I can set it as my JAVA_HOME

You need to set the JAVA_HOME environment variable. To do it in Windows:

  1. From the Run dialog (WIN + R), launch sysdm.cpl.
  2. Advanced => Environment Variables
  3. Define a new variable of JAVA_HOME, with the value pointing to your Android Studio Java directory, e.g. C:\Program Files\Android\Android Studio\jbr for the latest Lady Bug installation