How to setup Android Studio in El Capitan (OS X 10.11)?

15,586

Solution 1

For it to work on El Capitan (OSX 10.11) you need to install the Java Development Kit, not only Java VM

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

After installing JDK, Android Studio runs as expected!

Solution 2

NOTE

Current versions of Android Studio (2.2.2+) have OpenJDK8 embedded which resolves many of the issues surrounding use of Java 1.6. (source). Navigate to File > Project Structure > SDK Location and choose option to use the embedded JDK. If you still prefer to use your own version of JDK, the instructions below still apply.

After some experimentation:

I found that one needs to remove Java 1.6 since it is no longer supported by OS X 10.11+. Instead install the latest version of the JRE, JDK, and Java Package (from Apple). This will ensure that Android Studio picks up the latest JVM (and incidentally will also fix most other java based apps).

You may experience other error messages at this point that still reference Java 1.6. In my case, I had an old JDK version referencing 1.6 (which is now obsolete) in the following folder:

/Library/Java/JavaVirtualMachines

To fix:

  1. Click Finder (Anywhere on the Desktop)
  2. Type Cmd-N to open a Finder window
  3. Press Cmd-Shift-G to open a Go to folder Menu
  4. Paste in the following : /Library/Java/JavaVirtualMachines
  5. Delete old JDK files (You will need the admin password)

The net effect is that on relaunch of Android Studio, the JVM version indicated in the Contents\Info.plist will no longer need to be modified (although since 1.6 is obsolete, I think it should be removed from all future releases). When updating Android Studio, the fix applied here will continue to be effective.

Alternative Solution

You can also point Android Studio to use a later version of Java. To do so you will need to download the latest JDK onto your system. See the details below.

After you load the latest version of Java you can redirect Android Studio to use that version of Java. You do this by editing the ~/.bash_profile in your home directory.

  1. Open Terminal
  2. Type nano ~/.bash_profile

Bash Profile Edits

export JAVA_HOME=$(/usr/libexec/java_home)
export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk

Nota Bene ~ Please use the latest JDK available and adjust the version reference as necessary. Don't forget to accept the license before clicking the download.

Official Documentation On Configuring Android Studio With Java notes that:

Android Studio requires two different JDKs: The version of Java that the IDE itself runs with. The version of the JDK that it uses to get the Java compiler from

Updates

I created a stub in Automator to ensure that Android Studio always opens correctly, uses the JDK that you want, and removes various warning messages about any earlier Java that one might still have on their system (for example, one might still keep older versions to support other software).

Here's a quick preview of what that Automator script looks like:

automator-script

In Automater, I save the script as an application and store in my Utilities folder (This allows me to give my stub the same name as the Android Studio app, which still needs to be installed in the normal way).

stored-in-utilities

The benefit of this is that one can add the stub to the dock and Spotlight will also detect it. Launching the stub ensures that one no longer gets the prompts about invalid Java versions and that one always uses the explicit JDK intended.

accessed-via-spotlight

I saved the stub on Github (https://github.com/mingsai/AndroidStudioStub) in case others may just want to download the zip and store in the Utilities Folder (Apple Menu > Go > Utilities) or Shift-Command-U. The stub has the Android Studio icon added to it.

Solution 3

You can either

  1. reintroduce Java6 or
  2. make Android Studio run on a more recent JDK

If you favor the latter, you must first download and install the JDK8. Then unless Android Studio picks it up automatically, you'll have to configure it to use the newly installed JDK but not through its Info.plist as is often recommended but through a STUDIO_JDK environment variable (see link below for details). This can be done from the command line, in order to make sure Android Studio starts properly using JDK8:

$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.*_**.jdk
$ open /path/to/Android\ Studio.app

but you most likely want to also be able to open it from the GUI. In this case you can refer to this SO thread on how to create a plist launch agent which will be able to set the STUDIO_JDK variable for launchd by substituting the command in the linked answer snippet with

<string>launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.8.*_**.jdk</string>

(of course replace * with your currently installed version).

Lastly, you should check the official documentation on the selection of the JDK for Android Studio for more details on the procedure, the drawbacks, the rationale behind the method I described above and information on how to set up the project (not just IDE) JDKs as well.

Share:
15,586
John
Author by

John

Engineer/Software Developer, avid sailor and stack overflow peruser. I like learning new technologies and finding the right tool for the job.

Updated on June 14, 2022

Comments

  • John
    John almost 2 years

    Fresh install of El Capitan(10.11), tried to install Android Studio version 1.21.

    Error:

    Android Studio was unable to find a valid JVM. Please download it from:

    Download available from Apple -Java for OS X 2014-001 also does not install.

    Error:

    Java for OS X can't be installed on this disk. A newer version of this package is already installed

    What is the best way of getting this to run?

  • John
    John almost 9 years
    Yeah, I puttered around with it last night and found the same after playing around with plists and such.
  • spirographer
    spirographer over 8 years
    According to the Android Documentation: tools.android.com/tech-docs/configuration/osx-jdk it is worth it to install the old Java for OSX available here support.apple.com/kb/DL1572?locale=en_US (it enables the IDE to render fonts better, but isn't the compiler the IDE uses to compile your code)
  • Aaron Storck
    Aaron Storck over 8 years
    Installing the Java Package from Apple did it for me. Thanks!