Android Studio需要哪个JDK版本(语言级别)?

77

我是一个新手,来自.NET背景,想要尝试安装Android Studio,但在Android.com上关于开发Android应用所需的JDK版本存在不匹配。

SDK网页上它声明需要使用JDK 6(在系统要求部分)。Jim Wilson也在他的Pluralsight课程中坚持这一点(从去年五月开始),表示使用版本7会给Android SDK开发带来很多麻烦,并明确只使用JDK 6。

虽然在Android studio页面上(在安装步骤2下)解释了如何设置指示正确JDK位置的环境变量。在此,他们使用JDK 7的路径。

选择开始菜单 > 计算机 > 系统属性 > 高级系统属性。然后打开高级选项卡 > 环境变量,并添加一个指向JDK文件夹的新系统变量JAVA_HOME,例如C:\Program Files\Java\jdk1.7.0_21

我很确定ADT和Eclipse捆绑包以及Android Studio捆绑包都使用相同的SDK,但现在我对需要安装的JDK版本感到困惑。我的唯一目的是尽可能避免问题,同时迈出进入Android开发的第一步。

免责声明:本人与Pluralsight无任何关系,只是一个遵循课程的普通用户。

4个回答

77

回答澄清 - Android Studio支持JDK8

以下是对问题“Android支持哪个版本的Java?”的回答,这与实际被问到的“我可以使用哪个版本的Java来运行Android Studio?”不同。针对想回答第二个问题的人,您可能会发现Using Android Studio with Java 1.7有帮助。

此外:请参阅http://developer.android.com/sdk/index.html#latest以获取Android Studio系统要求。 JDK8实际上是PC和Linux的要求(自2016年5月14日起)。


Java 8更新(2014年3月19日)

因为我认为这个问题会在昨天发布后很快开始出现:截至目前,还没有确定Android将支持Java 8的日期。

这里有一个/ androiddev的讨论 - http://www.reddit.com/r/androiddev/comments/22mh0r/does_android_have_any_plans_for_java_8/

如果你真的想要lambda支持,你可以查看Retrolambda - https://github.com/evant/gradle-retrolambda。我从未使用过它,但它似乎非常有前途。

另一个更新:Android添加了Java 7支持

Android现在支持Java 7(减去try-with-resource功能)。您可以在此处阅读有关Java 7功能的更多信息:https://dev59.com/Mmw05IYBdhLWcg3wmCwo#13550632。如果您正在使用gradle,则可以将以下内容添加到build.gradle中:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

旧回答

我正在使用Java 7和Android Studio,没有任何问题(OS X - 10.8.4)。但是你需要将项目语言级别降至6.0。请参见下面的截图。

输入图片描述

tehawtness所说的也有道理。如果他们建议使用JDK 6,则最好使用JDK 6。无论哪种方式都可以。

输入图片描述


更新:请查看此SO帖子- https://dev59.com/Qmoy5IYBdhLWcg3wZtNC#9567402


2
Java 8还是这样吗?它将在什么时候得到支持? - doplumi
1
@domenicop 确实。可能还需要几年时间 :P。 - loeschg
2
Android使用自己的运行时环境是导致Android在Java版本方面总是落后几年的原因。 - tiktak
1
我看到这是被接受的答案(有57个赞),但在我看来,这根本没有回答问题。问题是关于运行AS所需的Java版本,这与支持Android应用程序的Java版本相当独立。 - Tom
@Tom,我同意!我更新了上面的答案以反映至少在某种程度上是这样。 - loeschg

3
通常情况下,我会按照文档中的说明进行操作,但如果教练明确要求使用JDK 6,那么我会使用JDK 6,因为您希望您的开发环境尽可能接近教练的环境。如果您遇到问题并且心里想着可能是因为您正在使用JDK 7而导致问题,那将是很糟糕的。顺便说一句,我最近没有接触Android,但我个人在使用JDK 7时从未遇到过任何问题,但请注意,我只是偶尔编写Android应用程序。

2
请尽量不要使用高于所支持版本的JDK。我几个月前遇到了一个非常模糊的问题,详情请参见此处
我有一个自己编译的JDK 8的jar库,并在我的任务中使用它。每次运行时都会出现一种preDexDebug错误。最终,在数小时试图解密错误日志后,我终于想到了问题所在。我检查了系统需求,将编译器从8更改为7,然后就可以正常工作了。看来把我的jar放入库里花费了我几个小时而不是节省时间...

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接