105

While compiling i get the error Error:compileSdkVersion android-21 requires compiling with JDK 7, saying that a newer version of JDK is required.

I'm running on OS X Yosemite with Android Studio v0.8.14

Things I checked :

  1. Java version :

java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

  1. Inside the JavaVirtualMachine folder I can see only 1.6.0.jdk folder, I cannot find any other folder.

  2. Tried reinstalling JDk 8 and 7!

I'm unable to find the folder location of jvm 1.8, any idea how I can fix there.

3
  • I am having this same problem. Have you found a solution to this? Commented Nov 3, 2014 at 2:51
  • @EricCumbee Using Jdk 7 as shown below solved the issue. Commented Nov 25, 2014 at 4:32
  • 4
    It's absurd that this is the first-run experience. Commented Jan 10, 2015 at 23:26

9 Answers 9

223

The Exact Fix for this Issue (Android Studio Users on Mac)

If you have already upgraded to Java 8, please note that the JDK location is now within /Library/Java compared to Java 6's location /System/Library/Java. So to fix this problem, Right click on the Project folder > Project Structure > SDK Location.

Then change JDK location to

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home 

If you have installed a different JDK version (other than Java 8), find out the path using the java_home script first and use the output. Just run,

/usr/libexec/java_home 
Sign up to request clarification or add additional context in comments.

5 Comments

Thanks @Subin For Android studio 1.0.1 SDK Location located in File > Project Structure or simply hit Command + ;
Perfect answer for users of android studio.. saved me
the below mentioned path worked for me /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
I seriously kept looking at my location and thinking it was fine but just kept seeing jdk1.6 until I realized what you meant about making sure you are in /Library/Java instead of /System/Library/Java where I easily found the jdk1.8 to get to Contents/Home and boom, now Android Studio works without constant errors. You are a saint!
This works for Windows too! Just point to the JDK installation. Example: C:\Program Files\Java\jdk1.8.0_51
29

Actually I just found the solution - JDK 7 is in /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home.

that got it working for me. Oracle Docs on where JDK7 is installed

6 Comments

I can't see this folder! mine shows only this folder 1.6.0.jdk
I can't remember where Android Studio Was looking initially but the 1.7 JDK folder was not in the same directory tree as 1.6.0jdk.
@Arjun got same confusion as yours. But then I just realized that JDK 7's "Java" directory is actually located in /Library/Java instead of /System/Library/Java separated from my JDK 6
So in plain English, what did you actually do to fix the issue?
{ROOT}/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/
|
10

I got a solution. It happened with me too and I searched a lot on Google but all I got was hints. A lot of hints. And I came up with a sure shot solution.

This is because the computer doesn't have JDK 7 (or greater) installed. The JDK directory in AS/Configuration might points to JDK6. (That System/Library/...)

All you need to do is:

  1. Download latest JDK.
  2. Install it.
  3. Point Android Studio/Configure/Project Defaults/Project Structure/(JDK Location: ) to /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

Text highlighted in bold-italics may differ, so it's recommended that you browse it. Hope this helps. Spent a whole day messing up with gradle, android studio. Happy coding.

Comments

8

I found Eric and Subin's answers combined solved my problem:

i.e. need to set the java JDK to Eric's answer (assuming you're using JDK 7):

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home.

The mistake I made was I tried to just select the jdk1.7.0_71.jdk directory and I kept getting the error message "Please choose a valid JDK directory".

I was working on the format previously used for JDK 6 :( - It worked when I gave it the full path down to into Contents/Home.

Subin's answer tells you how to find your JDK location which may be different depending on what you're trying to do.

Thanks Eric and Subin!

Comments

3

I am sharing this because I want to help those that found this question when they Googled the error. Most other "answers" on the internet were very time consuming. Follow below before you waste so much time like I did.


What I did was to download JDK 7

Then change the setting of the jdk to 1.7.0

enter image description here

Comments

3

I have been having this problem too. So far I cannot find a fix for it, so I've resorted to changing the maximum SDK version to 20, which works with JDK6.

As for the file location, instead of Android studio assuming it should be in /System/Library/Java/JavaVirtualMachines/Insert JDK version/Contents/Home.

In reality my JDK gets installed in /Library/Java/JavaVirtualMachines/JDK Version Here/Contents/Home.

Trying to select a JDK in the actual directory where its installed makes android studio say that I need to select a valid JDK location. For now I can't find a fix, so like I said above, I have resorted to changing the maximum SDK version to 20 instead of 21 and it will stay like that until more people either suffer from the bug so that Google fix it. Or until an actual fix gets posted online instead of 101 ways for it not to work.

Hope this helps for now, it isn't really a solution/answer but it is a work around that works for me, for the time being.

Comments

0

if you only have folder 1.6.0.jdk then go to this link and download and install jdk 1.7. then find your java folder in this path

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home 

Comments

0

The solutions on this thread are not valid for the same error in Android Studio 1.4 . The preferences menu, for example, is gone. Below is the solution for Android Studio 1.4 running on Ubuntu 14.04.

To solve in Ubuntu 14.04+ and Android Studio 1.4+, you need to go to

File -> Other Settings -> Default Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version

This drop-down will be empty by default.

Set to your preferred JDK, in the case of the screencap below, 1.8 .

android sdk screencap

Voila, your project will compile.

Comments

0
  1. Download from here latest JDK.
  2. Open command line tool.
  3. Copy and paste following line into your command line tool and press return.

/usr/libexec/java_home

  1. Copy output of this command.
  2. Go back to your android project, and navigate as below

File -> Project structure -> JDK location

edit(click on square with three dots) JDK location(2nd in image) and paste command line tool output there.

enter image description here I have gathered these instructions using MacBook Pro.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.