Gradle に切り替えることなく、Android アプリを Android Studio に移動しました。今度は Gradle に移行したいと思います。アプリは Gradle に切り替える前に Android Studio でコンパイルされますが、Gradle をすべてセットアップしたので、String Switch ステートメントまたはダイヤモンド演算子をコンパイルしません。私が得ているエラーは
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スクリプトを作成しませんでした。それらの 1 つはビルド方法にある可能性がありますが、プロジェクト固有のファイルはありません。Android Studio .iml ファイルのみ。
更新 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 でコンパイルされたライブラリが必要」セクションを参照してください。