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

我是Android世界和.NET背景的新来者。 我试图安装Android Studio,但是我在Android.com上遇到了开发Android应用程序所需的JDK版本不匹配的问题。

从SDK网页上,它指出需要JDK 6 (在系统需求部分下)。 吉姆·威尔逊(Jim Wilson) 在Pluralsight课程 (从去年5月开始相当新颖)方面坚持认为,使用版本7与Android SDK将产生许多令人头疼的问题,并明确表示只使用JDK 6。

尽pipe在Android工作室页面 (在安装步骤2中),他们解释了如何设置一个环境variables来指示正确的JDK位置。 在这里他们使用JDK 7的path

selectStart menu > Computer > System Properties > Advanced System Properties 。 然后打开“ Advanced tab > Environment Variables然后添加一个指向JDK文件夹的新系统variablesJAVA_HOME ,例如C:\Program Files\Java\jdk1.7.0_21

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

免责声明:我与Pluralsight没有任何关系。 我只是一个正常的用户遵循的课程。

解答澄清 – Android Studio支持JDK8

以下是对“Android支持哪种Java版本”的回答。 这与“我可以使用什么版本的Java来运行Android Studio?”不同。 这是我相信实际上被问到的。 对于那些想要回答第二个问题的人来说,你可能会发现使用Android Studio和Java 1.7很有帮助。

另请参阅http://developer.android.com/sdk/index.html#latest(适用于Android Studio系统要求)。 JDK8实际上是PC和Linux的需求 (截至5/14/16)。


Java 8更新(3/19/14)

因为我认为这个问题将会在昨天发布的时候很快出现:截至目前,Android没有支持Java 8的date。

这里是在/ 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(减去试用资源function)。 您可以在这里阅读有关Java 7function的更多信息: https : //stackoverflow.com/a/13550632/413254 。 如果你正在使用gradle,你可以在build.gradle中添加以下内容:

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

较早的回应

我在Android Studio中使用Java 7没有任何问题(OS X – 10.8.4)。 您需要确保将项目语言级别降低到6.0。 请参阅下面的截图。

在这里输入图像描述

以下所说的特殊含义也是有道理的。 如果他们build议使用JDK 6,那么使用JDK 6是有道理的。无论哪种方式都可以。

在这里输入图像描述


更新:看到这个SO后 – https://stackoverflow.com/a/9567402/413254

通常情况下,我会按照文档说的去做,但如果教师明确表示要坚持使用JDK 6,那么我会使用JDK 6,因为您希望开发环境尽可能靠近教师。 如果遇到问题,并且在脑后想一想,也许是因为您在使用JDK 7时遇到问题,那就太糟糕了。 顺便说一下,我最近没有碰到过Android,但是我个人从未遇到过使用JDK 7的问题,但是请注意,我只是随便编写了Android应用程序。

尽量不要使用比所支持的更高的JDK版本。 几个月前我实际上遇到了一个很模糊的问题 。

我有一个我自己的jar文件库,我用JDK 8进行了编译,并在我的任务中使用它。 每当我尝试运行它时, preDexDebug给我一些preDexDebug错误。 最终在几个小时的试图破译错误日志后,我终于明白了什么是错误的。 我检查了系统要求,将编译器从8更改为7,并且工作正常。 看起来像把我的jar放入一个图书馆花了我几个小时,而不是保存它…