2012-05-17 37 views
10

我正在爲Android SDK 2.3.3編寫Android應用程序,但之後我被要求在運行Android 2.2.1的設備上測試它。因此,我將目標設置爲8而不是10.但是,然後java.util.concurrent.TimeUnit僅具有Java 1.5功能集,而不是java.util.concurrent.TimeUnit的Java 1.6/1.7功能集。因此,我將TimeUnit的openjdk 6實現放入我的Android應用程序包中,並且一切正常。哪個版本的Android SDK支持在哪個版本的Java中進行編碼?

有沒有人知道我在哪裏可以得到一些文檔,這些文檔給了我一張圖表,告訴我,例如,在使用官方SDK時,Android 2.2必須使用Java 1.5關鍵字/語法/ API,Android 2.3進行編碼。 3可以使用Java 1.6關鍵字/語法/ API等進行編碼...?

+0

我覺得Android會迫使你使用1.5,因爲Java 1.6比Android老。也許還有更多的事情在這裏發生。 – jpaugh

+0

我敢打賭,openjdk當時的版本只有1.5,並且與它有關。 openjdk 7直到2011/07/28 –

+0

重複發佈:http://stackoverflow.com/q/7535385/324625和http://stackoverflow.com/q/390482/324625 –

回答

6

您正試圖將Android看作Java的一個子集,它不是。他們完全分開。儘管Android來自Java,但它離開了它很多,並且兩者之間不再存在「版本明智」的關聯。

你可以看到的是Android文檔。對於每個指令/命令/方法/屬性,在右上角您會找到您可以訪問該屬性的api級別。

單擊api級別將帶您到一個頁面,其中包含一個表,將api級別轉換爲Android版本。

查找是否允許使用屬性的簡單方法是使用eclipse並執行您剛纔的操作:更改目標api級別。然後,任何對您不可用的方法或屬性的調用都會產生致命錯誤。

+1

「並且沒有關係了兩者之間。」那不是真的嗎? – keyser

+0

@Keyser Yahel的觀點似乎是,你不應該嘗試將android版本映射到特定的java版本,以便找出支持的東西 - 而應該直接檢查Android文檔。 –

+0

@Keyser:如果你在意詳細說明:) – Yahel

相關問題