Recibo el siguiente error cuando intento compilar una prueba unitaria escrita en 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
Intenté configurar la compatibilidad de origen para mi configuración de android
en mi aplicación build.gradle
:
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
así como configurar todas las tareas de compilación de kotlin en la raíz build.gradle
:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { kotlinOptions { jvmTarget = '1.8' } }
Este es un error temporal de Android Studio. Necesitaba agregar estas líneas al archivo gradle de la aplicación:
android { ... compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 } kotlinOptions { jvmTarget = "1.8" } ... }
1) En una Mac
Android Studio -> Preferencias -> Kotlin Compiler -> Cambiar la versión de JVM de destino
2) computadora
Android Studio -> Archivo -> Configuración -> Compilador de Kotlin -> Cambiar la versión de JVM de destino
El código de bytes de JVM de destino predeterminado es 1.6. Pero esto se puede configurar cambiando build.gradle(:app):
android{ ... kotlinOptions { jvmTarget = 1.8 } }
Parece que la opción JVM de destino del compilador de Android Studio Kotlin no funciona.