如何在Gradle中指定模块的JDK编译级别

时间:2015-07-08 16:39:24

标签: java android android-studio gradle

我在Android项目中有一个纯Java模块。我的项目默认使用JDK 8编译,但我希望我的Java模块使用JDK 7进行编译。如何为我的纯java模块指定1.7的编译级别?请记住,我不想覆盖1.8的项目级编译级别。

5 个答案:

答案 0 :(得分:2)

您可以通过两种方式执行此操作:

1-将此块添加到您的 app build.gradle

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

2-使用android studio添加此块:

  • 转到文件>项目结构
  • 模块部分中,选择您的应用(或其他模块)模块。
  • 源兼容性目标兼容性的值更改为 1.8

更新

注意:如果您使用kotlin作为Gradle语言(kotlin dsl),则应采用以下方式:

android{
....
  compileOptions {
      setSourceCompatibility(JavaVersion.VERSION_1_8)
      setTargetCompatibility(JavaVersion.VERSION_1_8)
  }
}

答案 1 :(得分:1)

我找到了答案:

//noinspection GroovyUnusedAssignment
sourceCompatibility = 1.7
//noinspection GroovyUnusedAssignment
targetCompatibility = 1.7

您可以指定源和目标兼容级别。在编译Android和Java模块的混合时经常需要这样做。

答案 2 :(得分:0)

两种方式

  1. 在您的HOME_DIRECTORY集gradle.propertiesorg.gradle.java.home=/path_to_jdk_directory

  2. gradle.build

    compileJava.options.fork = true
    compileJava.options.forkOptions.executable = /path_to_javac
    

答案 3 :(得分:0)

在Android Studio中设置java库模块的目标/源兼容级别可以将其添加到java库模块的build.gradle中:

tasks.withType(JavaCompile) {
    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'
}

答案 4 :(得分:-1)

您可以在app/build.gradle中执行以下操作:

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