Configure Java for Android

If you are building Android via the command line (which includes our recommended pre-push hooks), you will need to configure Java. If not, you can just use Android Studio and do not need to read further.

Notes:

  • this guide is written using macOS and will need to be updated to additionally support Linux and Windows.

  • if you find a better way to do configure Java, let us know!

Background

At the time of writing, Android development seems to work best when using Java 17. By default brew and other package managers will install more recent versions that may throw errors during development.

Methods

Method #1: configure Java 17 from Android Studio

Do the following:

  • Download and install Android Studio

  • Add the following line to your ~/.zshrc or equivalent shell startup file: export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"

    • Update the path if you installed Android Studio to a non-standard location

That’s it! To verify correctness, open a new shell, navigate to a directory with Android source code, and type ./gradlew tasks.

This works because macOS comes with a /usr/bin/java stub which will defer the location of the JDK to the value in the JAVA_HOME environment variable.

Method #2: install Java 17 from Homebrew

You can install Java from Homebrew using the command below.

brew install openjdk@17

Method #3: install from website

See https://docs.oracle.com/en/java/javase/17/install/installation-jdk-macos.html

Troubleshooting

Get Java version

To see what version of Java you have installed, run:

java -version

If you have Java 17 configured, you’ll see output like:

openjdk 17.0.7 2023-04-18
OpenJDK Runtime Environment Homebrew (build 17.0.7+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.7+0, mixed mode, sharing)