Cuando intento ejecutar el ejemplo CorDapp ( https://github.com/corda/cordapp-example ) a través de IntelliJ, recibo el siguiente error:
No se puede incluir el bytecode integrado con JVM target 1.8 en bytecode que se está creando con JVM target 1.6
¿Cómo puedo modificar la configuración de IntelliJ para que todo el bytecode se construya con el mismo objetivo JVM?
build.gradle
dependencias {compile ("org.jetbrains.kotlin: kotlin-stdlib-jdk8")}Respuestas:
app / build.gradle
GL
Utilice las funciones del lenguaje Java 8
fuente
kotlinOptions { jvmTarget = "1.8" }
debería ser suficiente.Puede solucionar este problema de la siguiente manera:
Build, Execution, Deployment
>Compiler
>Kotlin Compiler
peroOther Settings
>Kotlin compiler
si Android Studio>3.4
Target JVM version
a1.8
Apply
fuente
Target platform
a JVM 1.8 en suKotlin
Faceta en laGeneral
pestaña.Kotlin Compiler
configuración se colocó en laOther Settings
sección.debe configurar algo como lo siguiente en build.gradle
fuente
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
kotlin-android
complemento?En mi caso, simplemente cambiar la versión JVM de Target de esta manera: Archivo> Configuración> Compilador Kotlin> Versión JVM de destino> 1.8 no ayudó. Sin embargo, resuelve el error en tiempo de compilación. Pero falló en tiempo de ejecución.
También tuve que agregar lo siguiente en el archivo build.gradle de la aplicación para que funcione.
fuente
Cuando las otras soluciones no funcionaron para usted (cambiar la versión de JVM en la configuración del compilador y agregarla
jvmTarget
a subuild.gradle
), debido a que sus.iml
archivos intentan forzar sus configuraciones, puede cambiar la plataforma de destino desde la configuración del proyecto.File > Project Structure
Facets
debajoProject Settings
+
botón pequeñoTarget Platform
aJVM 1.8
(también es mejor marcar laUse project settings
opción)fuente
<configuration version="3" platform="JVM 1.8" useProjectSettings="false">
atrue
y funcionó. Sin embargo, el archivo sigue cambiando de nuevo!En mi caso, este código no funcionó hasta que me moví
apply plugin: 'kotlin-android'
de abajo hacia arriba.fuente
En Android Studio 4.3.2, agregar a través del siguiente procedimiento no funciona.
La razón es que Android Studio no puede agregar el siguiente código en el archivo Gradle de nivel de módulo. Por favor agrégalo manualmente.
Solo para el complemento, busque la versión de Target JVM en la búsqueda de Android Studio. Te llevará directamente a la opción.
fuente
una imagen vale mas que mil palabras
fuente
Feb 2020
android 3.4+
Vaya a Archivo -> Configuración -> Compilador Kotlin -> Versión JVM de destino> configure en 1.8 y luego asegúrese de hacer Archivo -> Sincronizar proyecto con archivos Gradle
O agregue esto a build.gradle (módulo: aplicación) en el bloque de Android :
fuente
Como está escrito en el uso de Maven documentos del sitio web de Kotlin:
Solo tienes que ponerlo
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
en la sección de propiedades de tu pom.xmlfuente
Si tiene muchos fuentes / módulos, puede ser complicado configurar jvmTarget para cada uno de ellos por separado.
Puede configurar jvmTarget para todos a la vez de la siguiente manera:
Este fragmento se puede usar en el nivel superior de su archivo gradle.build
Después de modificar el archivo gradle
Reimport All Gradle Imports
. Para verificar si funcionó, abraProject Structure
y verifique que IntelliJ se haya asignado correctamenteJVM 1.8
a todos los módulos Kotlin. Debe tener un aspecto como este:Yo no recomiendo cambiar la plataforma directamente en IntelliJ, porque nadie más la clonación de su proyecto por primera vez, es probable que se enfrentan el mismo problema. Configurarlo correctamente en Gradle tiene la ventaja de que IntelliJ se comportará correctamente desde el principio.
fuente
En mi caso, resolví esto siguiendo estos dos pasos
fuente
Para mí, la razón fue que esta configuración en mi gradle de construcción estaba en algunos módulos y en algunos no
fuente
Para Gradle con lenguaje Kotlin (
*.gradle.kts
archivos), agregue esto:fuente
this
aKotlinJvmOptions
. ¿ Ya no está elthis
receptor en elkotlinOptions
bloqueKotlinJvmOptions
? Aún así no funciona para mí sin el elencoen la mayoría de los casos esto es suficiente:
si ha declarado tareas personalizadas de Gradle como,
integrationTest
por ejemplo, agregue también una configuración paracompile<YourTaskName>Kotlin
:fuente
La configuración
sourceCompatibility = JavaVersion.VERSION_1_8
habilita la eliminación de azúcares, pero actualmente no puede eliminar todas las funciones de Java 8 que utiliza el compilador Kotlin.Solución: la configuración
kotlinOptions.jvmTarget to JavaVersion.VERSION_1_8
en el módulo de aplicación Gradle solucionaría el problema.fuente
Todas las respuestas aquí están usando gradle, pero si alguien como yo termina aquí y necesita respuesta para maven:
El cambio del arquetipo jetbrains para kotlin-jvm es la
<configuration></configuration>
especificación de jvmTarget. En mi caso 11fuente
Nada funcionó para mí hasta que actualicé mi dependencia del complemento kotlin.
Pruebe esto:
1. Invalidar cahce y reiniciar.
2. Sincronice el proyecto (al menos intente)
3. Vaya a Archivo -> Estructura del proyecto -> Sugerencias
4. Si hay una actualización con respecto a Kotlin, actualícela.
Espero que ayude a alguien.
fuente
Si usa Visual Studio Code ** con la extensión Kotlin, vaya a la administración de complementos Crtl + Shift + x, escriba kotlin y haga clic en administrar (el pequeño engranaje) >> Configurar ajustes de extensión
en Kotlin >> Compilador >> Jvm: Target - escriba la versión de Java. En mi situación solo escribí 1.8
Y luego reiniciar :-)
** vscode o simplemente 'code' para linux
fuente
En mi caso, Archivo> Configuración> Compilador Kotlin> Versión JVM de destino> 1.8
fuente
Estoy usando Kotlin y Gradle para el desarrollo normal de JVM (no Android) y esto funcionó para mí en
build.gradle
:fuente
si estás en proyecto android
en el build.gradle de tu aplicación en Android {}
fuente
Si usa Eclipse suponiendo que descargó el complemento de Kotlin:
Haga clic con el botón derecho en el proyecto -> Propiedades -> Compilador Kotlin -> Habilitar configuraciones específicas del proyecto -> Versión de destino JVM "1.8"
fuente
Para las versiones recientes de Android Studio, si cambiar solo la versión de Kotlin Target VM no funcionó.
Archivo ➞ Estructura del proyecto ➞ Módulos (
app
): establezca "Compatibilidad de origen" y "Compatibilidad de destino" en "1.8 (Java 8)". Presiona "Aceptar" y sincroniza el proyecto con Gradle.fuente
Usando Kotlin Gradle DSL, esto resolvió el problema para mí. Agregué esto a build.gradle.kts. Esto se suma a la respuesta de Joel
fuente
Otra pista para los usuarios de Eclipse. Después de verificar dos veces la configuración de destino de jvm señalada por otros usuarios, todavía tenía el mismo problema, y eso fue causado por la falta de Kotlin Runtime Library. Por ejemplo, al crear un proyecto con spring initializr, no se agrega automáticamente. Para agregarlo:
right click on your project -> Build path -> Add libraries... -> User Library
y simplemente agregueorg.jetbrains.kotlin.core.KOTLIN_CONTAINER
Asegúrese de actualizar su proyecto gradle después (
right click -> Gradle -> Refresh gradle project
)fuente
Si enfrenta este mensaje en un proyecto Spring Boot / Kotlin, simplemente configure la propiedad "kotlin.compiler.jvmTarget" en "1.8" en su pom.xml.
fuente
En mi caso, jvmTarget ya estaba configurado en el
build.gradle
archivo como se muestra a continuación.Pero mi problema seguía ahí. Finalmente, se resuelve después de cambiar la versión de Target JVM de 1.6 a 1.8 en Preferencias> Otras configuraciones> Compilador Kotlin> Versión de Target JVM. ver imagen adjunta,
fuente