2013-12-09 183 views
51

我是Android开发新手。我可以使用在Android中使用JDK 7开发的现有Java代码吗?Android支持JDK 6或7

函数使用xerces dom和xslt和xpathapi。目前,当我安装Android Eclipse ADT环境时,这些功能不能编译。我也想知道Android设备本身是否支持JRE 6或7?

+0

这可能会帮助你:http:// stackoverflow。com/questions/8578441/can-the-android-sdk-work-with-jdk-1-7/9567402#9567402 – turbo

+0

感谢您的回复。这仍然不能回答我的问题。 – user3084351

+1

虽然问题标记为重复,但在其他问题(本身是重复的)的答案http://stackoverflow.com/questions/14487682/diamond-operator-is-not-supported或它的“原始”http:///stackoverflow.com/questions/17637179/how-to-set-source-1-7-in-android-studio-and-gradle不仅没有帮助,而且也是错误的。 正如在下面最高评价的答案中指出的那样,现在支持钻石操作员和许多其他功能。 –

回答

4

首先,Java JDK和JRE是有区别的。 JRE是Java运行时环境,而JDK是Java开发工具包。这是您的Android应用程序开发所需的JDK以及现有的Android SDK。

Android SDK可以使用JDK 6或7,但是,它可以使用只有使用JDK 6 API。

+0

感谢您的回复。 android eclipse环境并没有编译我在jdk 6下的常规eclipse下开发的代码。我在java构建路径中包含了jdk 6库。 – user3084351

77

只支持JDK 6个功能本来Android开发工具。但是,这是在2013年10月发生变化,首先由Android 0.3.2工作室看到:http://tools.android.com/recent/androidstudio032released

语言功能,如钻石运营商,多抓支持,尝试,有资源,在开关字符串等 创建新项目时,您可以指定源语言级别: enter image description here 请注意,您不仅可以使用Android KitKat的所有这些语言功能,还可以使用旧版Android!有一个例外到:尽量-与资源,这将需要的minSdkVersion 19.因此,工作室将标志您的尝试,与资源的代码的任何用途,如果你的minSdkVersion小于19:

然后在2014年3月ADT插件22.6,请参见:http://developer.android.com/tools/sdk/eclipse-adt.html

对Java 7语言功能,如多抓新增支持,尝试,有资源,以及钻石运营商。这些功能需要版本19或更高版本的构建工具。试用资源需要minSdkVersion 19;新语言功能的其余部分需要minSdkVersion 8或更高版本。 要在安装ADT 22.6.0后使用新的语言功能,确保您在JDK 7上运行Eclipse和更改应用程序项目设置为使用JDK 7

Android是不打算与任何100%兼容Java SE API版本,不是6也不是8,也没有。这就是甲骨文对谷歌提起诉讼的理由,指责谷歌将Java分解。一些API不可能在Android上实现为Swing;想象一下在android上有一个关闭按钮的窗口!其他的被延迟但实现了:例如:Charset类在Java SE 1.4中,但是在Android API 9中实现,在Android API级19中实现的Java 7中的AutoClosable实现了试用资源语言功能。有些API是存在的,但是与Console不同。

+4

哇,也许还有一些希望它会在不久的将来支持Java 8的功能。 –

+3

@SimonAndréForsberg我希望如此。 –

+0

虽然新的ADT支持新的语言功能,但它并没有说明是否支持新的API(例如Phaser),这就是问题所在。 – Sheepy

2

是的,jdk 7现在支持android从构建工具开始19