web-dev-qa-db-fra.com

Impossible d'utiliser le bytecode intégré à la cible JVM 1.8 en un bytecode généré avec la cible JVM 1.6

Lorsque j'essaie d'exécuter l'exemple CorDapp ( https://github.com/corda/cordapp-example ) via IntelliJ, le message d'erreur suivant s'affiche:

Impossible d'utiliser le bytecode en ligne créé avec la cible JVM 1.8 en un bytecode qui soit en cours de construction avec la cible JVM 1.6

Comment puis-je modifier les paramètres d'IntelliJ afin que tout le bytecode soit construit avec la même cible JVM?

28
Joel

Vous pouvez résoudre ce problème comme suit:

  • Ouvrez les préférences IntelliJ
  • Allez à Build, Execution, Deployment> Compiler> Kotlin Compiler
  • Changez le Target JVM version en 1.8
  • Cliquez sur Apply
47
Joel

app/build.gradle

Android {
    ...
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

GL

Source

139
CORONEL Braian

vous devriez configurer quelque chose comme ceci dans build.gradle

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

Dans Android Studio 4.3.2, l'ajout via la procédure ci-dessous ne fonctionne pas.

  1. Ouvrez les préférences IntelliJ
  2. Allez à Construire, Exécuter, Déployer > Compilateur > Compilateur Kotlin MAIS Autres paramètres> Compilateur Kotlin si Android Studio> 3.4
  3. Changez la version de la JVM cible en 1.8
  4. Cliquez sur Appliquer

La raison en est que Android studio n'est pas en mesure d'ajouter le code ci-dessous dans le fichier Gradle au niveau du module. S'il vous plaît ajoutez-le manuellement.

kotlinOptions {
    jvmTarget = "1.8"
}

Juste pour l'addon, recherchez la version de la machine virtuelle Java cible dans la recherche de studio Android. Cela vous mènera directement à l'option. enter image description here

15
Muhammad Maqsood

Lorsque les autres solutions ne fonctionnaient pas pour vous (modification de la version de la machine virtuelle Java dans les paramètres du compilateur et ajout de jvmTarget dans votre build.gradle), vous pouvez modifier la plate-forme cible à partir des paramètres du projet, à cause de vos fichiers .iml.

  • Ouvrez Project Settings
  • Aller à Facets
  • Cliquez sur votre module/modules Kotlin
  • Changez le Target Platform en JVM 1.8 (il est également préférable de cocher l'option Use project settings)
15
Saeed Masoumi

Comme il est écrit dans using-maven docs sur le 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.xml

13
Johan Vergeer

Pour moi, la raison en était que cette configuration dans mon niveau de construction était dans certains modules et dans certains non.

Android {  
...      
kotlinOptions {
        val options = this as KotlinJvmOptions
        options.jvmTarget = "1.8"
    }
...
Android {
6
AdrianoCelentano

Pour Gradle avec le langage Kotlin (fichiers *.gradle.kts]), ajoutez ceci:

Android {
    [...]
    kotlinOptions {
        this as KotlinJvmOptions
        jvmTarget = "1.8"
    }
}
6
Kevin Robatel

a picture is worth a thousand words

une image vaut mieux que mille mots

4
Ahmed D. Sherif

Si vous utilisez Eclipse en supposant que vous avez téléchargé le plugin Kotlin:

Faites un clic droit sur le projet -> Propriétés -> Compilateur Kotlin -> Activer les paramètres spécifiques au projet -> Version cible de la machine virtuelle Java "1.8"

0
Invest

Si vous utilisez le code Visual Studio ** avec une extension Kotlin, accédez au gestionnaire de plug-in Crtl + Shift + x, tapez kotlin et cliquez sur gérer (le petit engrenage) >> Configurer les paramètres de l'extension

sur Kotlin >> Compilateur >> Jvm: Cible - tapez la version Java. Dans ma situation vient de taper 1.8

Et puis redémarrer :-)

** vscode ou juste 'code' pour linux

0
Hinotori