如何使用gradle和kotlin为android studio设置jvm目标?

时间:2019-03-03 18:13:06

标签: android gradle kotlin

尝试编译用Kotlin编写的单元测试时,出现以下错误。

Task :app:compileDebugUnitTestKotlin FAILED ...Cannot inline bytecode built with JVM target 1.7 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option

我尝试在我的应用android中为我的build.gradle配置设置源兼容性:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

以及在根build.gradle中配置所有kotlin编译任务:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

3 个答案:

答案 0 :(得分:7)

这是Android Studio的临时错误。 我需要将此行添加到您应用的gradle文件中:

android {
    ...
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    ...
}

答案 1 :(得分:2)

1)在Mac上

Android Studio -> 首选项-> Kotlin编译器->更改目标JVM版本

2)PC

Android Studio -> 文件-> 设置-> Kotlin编译器->更改目标JVM版本

答案 2 :(得分:1)

default target JVM bytecode是1.6。 但这可以通过更改build.gradle(:app)来设置:

android{
...
    kotlinOptions {
        jvmTarget = 1.8
    }
}

看来,Android Studio Kotlin编译器的目标JVM选项不起作用。