我將我的Android應用程序移動到Android Studio而不切換到Gradle。現在我想搬到Gradle。該應用程序在切換到Gradle之前在Android Studio中編譯,但現在我已經設置了Gradle,它不會編譯字符串切換語句或鑽石操作符。我得到的錯誤是Android切換到gradle不會編譯JRE7代碼功能
Gradle: error: strings in switch are not supported in -source 1.6
(use -source 7 or higher to enable strings in switch)
我已經確定,我在JRE 7通過在任務打印
System.getProperty("java.version")
運行。輸出是
1.7.0_25
最讓我困惑的是「-source 1.6」和「use-source 7」之間的差異。但是我知道這兩個都是Java sdk的名字,所以也許標題只是被混淆了。
我需要設置Gradle設置嗎?或者這在Gradle中是不可能的?如果不是,它會混淆爲什麼它沒有使用Gradle。
應該指出,我的項目沒有Gradle版本運行默認的Android Studio構建。我沒有編寫一個用於構建它的ant腳本或maven腳本。其中之一可能是它正在構建的方式,但我沒有任何項目特定的文件。只是Android Studio .iml文件。
UPDATE 我嘗試添加下列到的build.gradle的Android {}部分
compileOptions {
sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_7
targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_7
}
但.class文件未能建立,它並沒有包括在APK。請參閱「Android的項目需要使用Java 1.6編譯庫」部分this post
你解決問題吧? –
其實我放棄了嘗試。我將代碼中的所有這些地方都改回了JRE6標準,並且只是和它一起生活。如果可以的話,我很樂意讓它工作,但我無法承受它的痛苦。 – laochiv
我確實解決了這個問題。順便說一句,如果所有其他方法失敗,你懶得弄清楚爲什麼,有一個類似大錘的解決方案:http://stackoverflow.com/a/21051506/1418097 –