I get the following error when trying to compile a unit test written in 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
I've tried setting the source compatibility for my android
configuration in my app build.gradle
:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
as well as configuring all kotlin compile tasks in the root build.gradle
:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = '1.8'
}
}
This is a temporary Android Studio bug. I needed to add these lines to the app's gradle file:
android {
...
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = "1.8"
}
...
}
1)On a Mac
Android Studio -> Preferences -> Kotlin Compiler -> Change Target JVM version
2) PC
Android Studio -> File -> Settings -> Kotlin Compiler -> Change Target JVM version
The default target JVM bytecode is 1.6. But this can be set by changing build.gradle(:app):
android{
...
kotlinOptions {
jvmTarget = 1.8
}
}
It seems, the Android Studio Kotlin compiler target JVM option does not work.