错误: 编译 android-21需要使用 JDK7进行编译

在编译时,我得到了错误 Error:compileSdkVersion android-21 requires compiling with JDK 7,表示需要更新版本的 JDK。

我在 OS X Yosemite 上运行 Android Studio v0.8.14

我检查过的东西:

  1. Java 版本:

Java 版本“1.8.0 _ 25” Java (商标)系统工程执行期函式库(build 1.8.0 _ 25-b17) Java HotSpot (TM)64-BitServer VM (build 25.25-b02,mix mode)

  1. 在 JavaVirtualMachine 文件夹中,我只能看到 1.6.0.jdk文件夹,找不到其他任何文件夹。

  2. 尝试重新安装 JDk 8和7!

我无法找到 jvm 1.8的文件夹位置,不知道如何修复它。

40874 次浏览

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

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

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.

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

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!

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.

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

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.

  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.