2013-12-09 172 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