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


76

我是Android世界的新手,并且具有.NET背景。我正在尝试安装Android Studio,但是在Android.com上关于开发Android应用程序所需的JDK版本不匹配。

SDK网页中指出需要JDK 6(在“系统需求”部分下)。吉姆·威尔逊(Jim Wilson)在坚持讲授Pluralsight的过程中(从去年5月开始,这是很新的),坚持认为将版本7与Android SDK结合使用会带来很多麻烦,并且明确表示仅使用JDK 6。

尽管在Android Studio页面(安装步骤2中)中,他们解释了如何设置指示正确JDK位置的环境变量。在这里,他们使用JDK 7的路径

选择Start menu > Computer > System Properties > Advanced System Properties。然后打开Advanced tab > Environment Variables并添加一个JAVA_HOME指向您的JDK文件夹的新系统变量,例如C:\Program Files\Java\jdk1.7.0_21

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

免责声明:我与Pluralsight没有任何关系。我只是学习课程的普通用户。

Answers:


76

答案澄清-Android Studio支持JDK8

以下是对“ Android支持哪些Java版本?”这一问题的解答。与“我可以使用哪个版本的Java运行Android Studio”不同?我相信这实际上是在问什么。对于那些想回答第二个问题的人,您可能会发现将Android Studio与Java 1.7结合使用会很有帮助。

另请:有关Android Studio系统要求,请参见http://developer.android.com/sdk/index.html#latest。实际上,JDK8是PC和linux的要求(截至5/14/16)。


Java 8更新(3/19/14)

因为我认为这个问题将在昨天的发布中很快出现:截至目前,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 : //stackoverflow.com/a/13550632/413254。如果您使用的是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: //stackoverflow.com/a/9567402/413254


2
Java 8是否仍然如此?什么时候会支持?
doplumi

1
确实是@domenicop。也许再过几年:P。
loeschg 2014年

2
Android使用自己的运行时环境是Android在Java版本方面总是落后几年的原因。
tiktak 2014年

1
我看到这是可接受的答案(有57个投票),但是IMO这根本无法回答问题。问题是,要运行AS需要使用哪个Java版本,这完全独立于Android应用程序支持的Java版本。
汤姆(Tom)

@汤姆,我同意!我更新了上面的答案以至少在一定程度上反映了这一点。
loeschg

3

通常,我会遵循文档中的说明,但是如果讲师明确表示要坚持使用JDK 6,我将使用JDK 6,因为您希望开发环境尽可能与讲师保持紧密联系。如果遇到问题并且脑海中浮现出想法,这可能会很糟糕,可能是因为您使用的是JDK 7。顺便说一句,我最近还没有接触过Android,但是当我使用JDK 7时,我个人从未遇到任何问题,但是请注意,我只是随便编写Android应用程序。


2

尽量不要使用高于支持的JDK版本。几个月前,我实际上遇到了一个非常模糊的问题

我有一个自己的jar库,我使用JDK 8进行了编译,并且在分配作业时使用了它。preDexDebug每当我尝试运行它时,都会出现某种错误。最终,在尝试破译错误日志数小时之后,我终于对哪里出了问题有了一个想法。我检查了系统要求,将编译器从8更改为7,然后它起作用了。好像把我的罐子放在图书馆里花了我几个小时而不是保存它。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.