java switch 如何在Android Studio和Gradle中設置源1.7




mac intellij idea jdk (7)

嘗試在Android Studio中編譯我的項目時出現以下錯誤:

Gradle: error: diamond operator is not supported in -source 1.6

在所有我找到的項目偏好中,我有1.7個目標。 此外,項目SDK的1.7 SDK下顯示的路徑是正確的Java 1.7安裝路徑。

即使我在終端中運行java -version,它也會告訴我我正在運行java 1.7。

我曾嘗試將JAVA_HOME env變量設置為:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

錯誤不會消失。 我如何消除錯誤?


右鍵單擊您的項目>打開模塊設置>在“項目設置”部分選擇“項目”

將項目SDK更改為最新(可能為API 21),並將項目語言級別更改為7+


在構建工具19中添加了Java 7支持。您現在可以使用諸如鑽石運算符,多捕獲,資源嘗試,交換機中的字符串等功能。將以下內容添加到build.gradle

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
    }

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

Gradle 1.7+,Android gradle插件0.6。+是必需的。

請注意,只有使用資源時才需要使用minSdkVersion 19.其他功能可以在以前的平台上使用。

鏈接到Android Gradle插件用戶指南

鏈接查看來源與目標的區別


目前,Android不支持Java 7,僅支持Java 6.因此目前不支持Java 7中的新功能,例如菱形語法。 找到支持這一點的源代碼並不容易,但我可以發現Dalvic引擎是建立在Apache Harmony的一個子集之上的,它只支持到版本6以前的Java。如果您檢查開發Android應用程序的系統需求 ,至少需要JDK 6(儘管這當然不是真正的證明,只是一個指示)。 this和我說的差不多。 如果我找到更多的財務數據,我會添加它。

編輯:自從我最初編寫這個答案以來,似乎已經添加了Java 7支持; 請查看Sergii Pechenizkyi的答案。


始終使用最新的SDK版本來構建:

compileSdkVersion 23

它不會影響運行時行為 ,但會為您提供最新的編程功能。


進入您的Gradle並尋找sourceCompatibility並將其從1.6更改為7 。 至少對我來說至少有效。

您也可以進入模塊設置並將源/目標兼容性設置為1.7。

模塊設置窗口

這將在您的Gradle中產生以下代碼:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

最新的Android Studio 1.4。

點擊文件 - >項目結構 - > SDK位置 - > JDK位置。

您也可以通過轉到模塊(位於SDK位置下)來設置個別模塊JDK版本兼容性,並相應地編輯源兼容性。 (注意,這僅適用於Android模塊)。


也許這些答案以上都是舊的,但新的Android Studios 1,你會看到模塊運行在1.7(或1.6如果你喜歡)。 點擊文件 - >項目結構。 選擇要運行的模塊,然後在“源兼容性”和“目標兼容性”下選擇1.7。 點擊“確定”。





java-7