2016-04-18 16 views
1

私はAndroidライブラリモジュールと普通の古いJavaモジュールで構成されるGradleプロジェクトを持っています。 (Androidのライブラリモジュールは、プレーンJavaモジュールに依存しています。)私はこれを持っているAndroidのライブラリモジュールのbuild.gradleファイルでIntelliJのGradle Refreshはモジュールの言語レベルを変更します

android { 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

そして、昔ながらのJavaモジュールのbuild.gradleファイルで

されて私はGradleのは、Androidモジュールの言語レベルはJava 8に設定されているのIntelliJ IDEA 15のボタンをリフレッシュヒットすると

compileJava { 
    sourceCompatibility = "1.8" 
    targetCompatibility = "1.8" 
} 

(私が期待される)が、Javaモジュールの言語レベル:私はこれを持っていますJava 1.6に設定します。 これはなぜ、IntelliJがJavaモジュールの言語レベルをJava 8に設定するのですか?あなたがGradleのための新しいJackコンパイラやRetrolambdaプラグインを使用している場合にのみJavaVersion.VERSION_1_8を使用することができます

答えて

1

ですから、使用する必要があります限りのIntelliJ/Androidのスタジオ言語設定など

compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_7 
    targetCompatibility JavaVersion.VERSION_1_7 
} 

は行く:

  1. ファイル - >プロジェクト構造:

enter image description here

  1. あなたはそれに応じて、プロジェクトの言語設定を設定する必要があります。 `1.7`までAndroidのモジュールのJavaバージョンを落とす上のポインタのための

enter image description here

+0

感謝を。 (私は、Java 1.8言語機能を使用していない限り、Java 1.8でコンパイルできると思っていました)。普通の古いJavaモジュールのJavaバージョンも「1.7」にドロップしましたが、IntelliJは現在、「Project Language Level」新しいモジュールを作成するたびに自動的に '7 'に設定されます。なぜプロジェクトレベルとモジュールレベルの値が違うのか不思議ですが、それは私のために働くので、今はそれを残しておきます。 –

関連する問題