Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Gradle中指定模块的JDK编译级别_Java_Android_Android Studio_Gradle - Fatal编程技术网

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

Java 如何在Gradle中指定模块的JDK编译级别,java,android,android-studio,gradle,Java,Android,Android Studio,Gradle,我在Android项目中有一个纯Java模块。我的项目默认使用JDK 8进行编译,但我希望我的Java模块使用JDK 7进行编译。如何为纯java模块指定编译级别1.7?请记住,我不想覆盖项目级编译级别1.8。有两种方法 在主目录集合的gradle.properties中org.gradle.java.HOME=/path\u到jdk\u目录 在您的gradle.build中 compileJava.options.fork = true compileJava.options.forkOpti

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

有两种方法

  • 在主目录集合的
    gradle.properties
    org.gradle.java.HOME=/path\u到jdk\u目录

  • 在您的
    gradle.build中

    compileJava.options.fork = true
    compileJava.options.forkOptions.executable = /path_to_javac
    
  • 我找到了答案:

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

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

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

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

    在Android Studio中设置java库模块的目标/源兼容性级别可以通过将以下内容添加到java库模块的build.gradle中来完成:

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

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

    1-将此块添加到你的应用程序构建中。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)
      }
    }
    

    这个项目不是很广泛吗?这是Android特有的。我正在混合构建Java和Android模块。请阅读问题。如果您对此有任何了解,您只需在
    android
    部分中添加
    compileOptions