Lorsque j'essaie d'exécuter l'exemple CorDapp ( https://github.com/corda/cordapp-example ) via IntelliJ, je reçois l'erreur suivante:
Impossible d'utiliser le bytecode intégré avec la cible JVM 1.8 dans le bytecode qui est construit avec la cible JVM 1.6
Comment puis-je modifier les paramètres IntelliJ pour que tout le bytecode soit construit avec la même cible JVM?
build.gradle
dépendances {compile ("org.jetbrains.kotlin: kotlin-stdlib-jdk8")}Réponses:
app / build.gradle
GL
Utiliser les fonctionnalités du langage Java 8
la source
kotlinOptions { jvmTarget = "1.8" }
devrait suffire.Vous pouvez résoudre ce problème comme suit:
Build, Execution, Deployment
>Compiler
>Kotlin Compiler
MAISOther Settings
>Kotlin compiler
si Android Studio>3.4
Target JVM version
par1.8
Apply
la source
Target platform
à JVM 1.8 sur votreKotlin
Facet sous l'General
onglet.Kotlin Compiler
paramètres ont été placés dans laOther Settings
section.vous devez configurer quelque chose comme suit dans build.gradle
la source
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
kotlin-android
plugin?Dans mon cas, changer simplement la version JVM cible comme ceci: Fichier> Paramètres> Compilateur Kotlin> Version JVM cible> 1.8 n'a pas aidé. Cependant, il résout l'erreur de compilation. Mais a échoué à l'exécution.
J'ai également dû ajouter ce qui suit dans le fichier build.gradle de l'application pour le faire fonctionner.
la source
Lorsque les autres solutions n'ont pas fonctionné pour vous (modification de la version de la JVM sur les paramètres du compilateur et ajout
jvmTarget
à votrebuild.gradle
), en raison de vos.iml
fichiers essayant de forcer leurs configurations, vous pouvez changer la plate-forme cible à partir des paramètres du projet.File > Project Structure
Facets
sousProject Settings
+
boutonTarget Platform
enJVM 1.8
(il est également préférable de cocher l'Use project settings
option)la source
<configuration version="3" platform="JVM 1.8" useProjectSettings="false">
àtrue
et cela a fonctionné. Cependant, le fichier continue de changer en arrière!Dans mon cas, ce code n'a pas fonctionné jusqu'à ce que je passe
apply plugin: 'kotlin-android'
de bas en haut.la source
Dans Android Studio 4.3.2, l'ajout via la procédure ci-dessous ne fonctionne pas.
La raison en est qu'Android Studio n'est pas en mesure d'ajouter le code ci-dessous dans le fichier Gradle au niveau du module. Veuillez l'ajouter manuellement.
Juste pour l'addon, recherchez la version JVM cible dans la recherche de studio Android. Cela vous amènera directement à l'option.
la source
une image vaut mieux que mille mots
la source
Feb 2020
android 3.4+
Allez dans Fichier -> Paramètres -> Compilateur Kotlin -> Version JVM cible> défini sur 1.8 puis assurez-vous de faire Fichier -> Projet de synchronisation avec les fichiers Gradle
Ou ajoutez-le dans build.gradle (module: app) dans le bloc Android :
la source
Comme il est écrit dans les documents using-maven du site Web de Kotlin:
Il vous suffit de mettre
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
dans la section des propriétés de votre pom.xmlla source
Si vous avez de nombreux jeux de sources / modules, il peut être fastidieux de configurer jvmTarget pour chacun d'eux séparément.
Vous pouvez configurer jvmTarget pour chacun d'eux à la fois comme ceci:
Cet extrait peut être utilisé au niveau supérieur de votre fichier gradle.build
Après avoir modifié le fichier gradle
Reimport All Gradle Imports
. Pour vérifier si cela a fonctionné, ouvrezProject Structure
et vérifiez que IntelliJ est correctement attribuéJVM 1.8
à tous les modules Kotlin. Ça devrait ressembler à ça:Je ne recommanderais pas de changer la plate-forme directement dans IntelliJ, car quiconque clonant votre projet pour la première fois est susceptible de rencontrer le même problème. Le configurer correctement dans gradle a l'avantage qu'IntelliJ va se comporter correctement pour eux dès le début.
la source
Dans mon cas, j'ai résolu cela en suivant ces deux étapes
la source
Pour moi, la raison était que cette configuration dans ma version était dans certains modules et dans certains, ce n'était pas
la source
Pour Gradle avec la langue Kotlin (
*.gradle.kts
fichiers), ajoutez ceci:la source
this
pourKotlinJvmOptions
. Lethis
récepteur n'est-il paskotlinOptions
déjà dans le blocKotlinJvmOptions
? Cela ne fonctionne toujours pas pour moi sans le castingdans la plupart des cas, cela suffit:
si vous avez déclaré des tâches Gradle personnalisées comme
integrationTest
par exemple, ajoutez également une configuration pourcompile<YourTaskName>Kotlin
:la source
Le paramètre
sourceCompatibility = JavaVersion.VERSION_1_8
permet de désugarer, mais il est actuellement incapable de désugarer toutes les fonctionnalités Java 8 que le compilateur Kotlin utilise.Fix - Le réglage
kotlinOptions.jvmTarget to JavaVersion.VERSION_1_8
dans le module d'application Gradle résoudrait le problème.la source
Toutes les réponses ici utilisent gradle mais si quelqu'un comme moi se retrouve ici et a besoin d'une réponse pour maven:
Le changement de l'archétype jetbrains pour kotlin-jvm est la
<configuration></configuration>
spécification de jvmTarget. Dans mon cas 11la source
Rien n'a fonctionné pour moi jusqu'à ce que je mette à jour ma dépendance de plugin kotlin.
Essayez ceci:
1. Invalidez cahce et redémarrez.
2. Projet de synchronisation (essayez au moins)
3. Aller fichier -> Structure du projet -> Suggestions
4. S'il y a une mise à jour concernant Kotlin, mettez-la à jour.
J'espère que cela aidera quelqu'un.
la source
Si vous utilisez Visual Studio Code ** avec l'extension Kotlin, allez dans la gestion des plugins Crtl + Shift + x, tapez kotlin et cliquez sur gérer (le petit engrenage) >> Configurer les paramètres d'extension
sur Kotlin >> Compilateur >> Jvm: Target - tapez la version java. Dans ma situation, je viens de taper 1,8
Et puis redémarrez :-)
** vscode ou simplement 'code' pour linux
la source
Dans mon cas, Fichier> Paramètres> Compilateur Kotlin> Version JVM cible> 1.8
la source
J'utilise Kotlin et Gradle pour le développement normal de la JVM, (pas Android) et cela a fonctionné pour moi dans
build.gradle
:la source
si vous êtes dans un projet android
dans le build.gradle de votre application sous Android {}
la source
Si vous utilisez Eclipse en supposant que vous avez téléchargé le plugin Kotlin:
Cliquez avec le bouton droit sur le projet -> Propriétés -> Kotlin Compiler -> Activer les paramètres spécifiques au projet -> Version cible JVM "1.8"
la source
Pour les versions récentes d'Android Studio, si la modification de la version de Kotlin Target VM ne fonctionnait pas.
Fichier Structure Structure du projet ➞ Modules (
app
): définissez "Compatibilité source" et "Compatibilité cible" sur "1.8 (Java 8)". Appuyez sur "OK" et synchronisez le projet avec Gradle.la source
En utilisant le DSL Kotlin Gradle, cela a résolu le problème pour moi. J'ai ajouté ceci au build.gradle.kts. Ceci s'ajoute à la réponse de Joel
la source
Un autre indice pour les utilisateurs d'Eclipse. Après avoir revérifié les paramètres cibles jvm signalés par d'autres utilisateurs, j'ai toujours eu le même problème, et cela était dû à la bibliothèque Kotlin Runtime manquante. Par exemple, lors de la création d'un projet avec Spring Initializr, il n'est pas ajouté automatiquement. Pour l'ajouter:,
right click on your project -> Build path -> Add libraries... -> User Library
et ajoutez simplementorg.jetbrains.kotlin.core.KOTLIN_CONTAINER
Assurez-vous de rafraîchir votre projet Gradle par la suite (
right click -> Gradle -> Refresh gradle project
)la source
Si vous êtes confronté à ce message dans un projet Spring Boot / Kotlin, définissez simplement la propriété "kotlin.compiler.jvmTarget" sur "1.8" dans votre pom.xml.
la source
Dans mon cas, jvmTarget était déjà défini dans le
build.gradle
fichier comme ci-dessous.Mais mon problème était toujours là. Enfin, il est résolu après avoir changé la version JVM cible de 1.6 à 1.8 dans Préférences> Autres paramètres> Compilateur Kotlin> Version JVM cible. voir photo ci-jointe,
la source