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
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!
You can either
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.
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.
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:
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.
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.
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
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:
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).
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.
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.