При попытке запустить Пример CorDapp ( https://github.com/corda/cordapp-example ) через IntelliJ я получаю следующую ошибку:
Невозможно встроить байт-код, созданный с целью 1.8 JVM, в байт-код, который создается с целью 1.6 JVM
Как я могу изменить настройки IntelliJ, чтобы весь байт-код создавался с одной и той же целью JVM?
build.gradle
зависимости {compile ("org.jetbrains.kotlin: kotlin-stdlib-jdk8")}Ответы:
Приложение / build.gradle
GL
Используйте возможности языка Java 8
источник
kotlinOptions { jvmTarget = "1.8" }
должно хватить.Вы можете исправить эту проблему следующим образом:
Build, Execution, Deployment
>Compiler
>Kotlin Compiler
НОOther Settings
>Kotlin compiler
если Android Studio>3.4
Target JVM version
To1.8
Apply
источник
Target platform
для виртуальной машины Java 1.8 на вашемKotlin
Facet подGeneral
вкладкой.Kotlin Compiler
настройки были фактически размещены вOther Settings
разделе.вы должны настроить что-то вроде следующего в build.gradle
источник
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
kotlin-android
плагином?В моем случае просто поменять Target JVM Version следующим образом: File> Setting> Kotlin Compiler> Target JVM Version> 1.8 не помогло. Однако, это решило ошибку времени компиляции. Но не удалось во время выполнения.
Мне также пришлось добавить следующее в файл app build.gradle, чтобы он работал.
источник
Когда другие решения не сработали для вас (измените версию JVM в настройках компилятора и добавьте
jvmTarget
в свойbuild.gradle
), из-за того, что ваши.iml
файлы пытаются принудительно настроить их конфигурации, вы можете изменить целевую платформу из настроек проекта.File > Project Structure
Facets
подProject Settings
+
кнопкуTarget Platform
кJVM 1.8
(также лучше проверитьUse project settings
вариант)источник
<configuration version="3" platform="JVM 1.8" useProjectSettings="false">
вtrue
и это сработало. Тем не менее, файл продолжает меняться обратно!В моем случае этот код не работал, пока я не перешел
apply plugin: 'kotlin-android'
снизу вверх.источник
В Android Studio 4.3.2 добавление через описанную ниже процедуру не работает.
Причина в том, что Android studio не может добавить приведенный ниже код в файл Gradle уровня модуля. Пожалуйста, добавьте это вручную.
Только для дополнения, ищите версию Target JVM в поиске студии android. Это приведет вас прямо к варианту.
источник
одна картинка стоит тысячи слов
источник
Февраль 2020
android 3.4+.
Выберите «Файл» -> «Настройки» -> «Компилятор Kotlin» -> «Целевая версия JVM»> «1.8», а затем обязательно выполните «Файл» -> «Синхронизировать проект с файлами Gradle».
Или добавьте это в build.gradle (модуль: приложение). в андроид блоке:
источник
Как написано в Using-Maven с сайта Kotlin:
Вы просто должны поместить
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
в раздел свойств вашего pom.xmlисточник
Если у вас много наборов исходных кодов / модулей, может быть сложно настроить jvmTarget для каждого из них в отдельности.
Вы можете настроить jvmTarget для всех сразу:
Этот фрагмент можно использовать на верхнем уровне вашего файла gradle.build.
После изменения файла Gradle
Reimport All Gradle Imports
. Чтобы проверить, работает ли он, откройтеProject Structure
и убедитесь, что IntelliJ правильно назначенJVM 1.8
всем модулям Kotlin. Это должно выглядеть так:Я бы не рекомендовал менять платформу непосредственно в IntelliJ, потому что любой, кто клонирует ваш проект впервые, может столкнуться с той же проблемой. Его правильная настройка в Gradle имеет то преимущество, что IntelliJ будет вести себя правильно с самого начала.
источник
В моем случае я решил это, выполнив следующие два шага
источник
Для меня причина была в том, что эта конфигурация в моей сборке была в некоторых модулях, а в некоторых - нет.
источник
Для Gradle с языком Kotlin (
*.gradle.kts
файлы), добавьте это:источник
this
наKotlinJvmOptions
.this
ПриемникkotlinOptions
уже не в блокеKotlinJvmOptions
? Тем не менее, это не работает для меня без актеровв большинстве случаев этого достаточно:
если вы объявили пользовательские задачи Gradle,
integrationTest
например, добавьте конфигурацию дляcompile<YourTaskName>Kotlin
:источник
Параметр
sourceCompatibility = JavaVersion.VERSION_1_8
разрешает отладку, но в настоящее время он не может отменить все функции Java 8, которые использует компилятор Kotlin.Исправлено - установка
kotlinOptions.jvmTarget to JavaVersion.VERSION_1_8
в модуле приложения Gradle устранит проблему.источник
Все ответы здесь используют gradle, но если кто-то, как я, попадает сюда и нуждается в ответе для maven:
Изменение от архетипа jetbrains для kotlin-jvm - это
<configuration></configuration>
определение jvmTarget. В моем случае 11источник
У меня ничего не получалось, пока я не обновил свою зависимость от плагина kotlin.
Попробуйте это:
1. сделать недействительным cahce и перезапустить.
2. Синхронизировать проект (по крайней мере, попытаться).
3. Перейти в Файл -> Структура проекта -> Предложения.
4. Если есть обновление, касающееся Kotlin, обновите его.
Надеюсь, это кому-нибудь поможет.
источник
Если вы используете Visual Studio Code ** с расширением Kotlin, перейдите в плагин управления Crtl + Shift + x, введите kotlin и нажмите на управление (маленькая шестеренка) >> Настройка параметров расширения
на Kotlin >> Компилятор >> Jvm: Target - введите версию Java. В моей ситуации просто набрал 1,8
А потом перезагрузите :-)
** vscode или просто «код» для Linux
источник
В моем случае File> Setting> Kotlin Compiler> Target JVM Version> 1.8
источник
Я использую Kotlin и Gradle для нормальной разработки JVM (не для Android), и это сработало для меня в
build.gradle
:источник
если вы находитесь в проекте Android
в build.gradle вашего приложения под Android {}
источник
Если вы используете Eclipse, предполагая, что вы загрузили плагин Kotlin:
Щелкните правой кнопкой мыши по проекту -> Свойства -> Kotlin Compiler -> Включить конкретные настройки проекта -> Целевая версия JVM "1.8"
источник
Для последних версий Android Studio, если изменение только версии Kotlin Target VM не сработало.
Файл Structure Структура проекта ➞ Модули (
app
): установите «Совместимость источника» и «Совместимость цели» на «1,8 (Java 8)». Нажмите «ОК» и синхронизируйте проект с Gradle.источник
Использование Kotlin Gradle DSL решило эту проблему для меня. Я добавил это в build.gradle.kts. Это в дополнение к ответу Джоэла
источник
Еще один совет для пользователей Eclipse. После двойной проверки параметров цели jvm, указанных другими пользователями, у меня все еще была та же проблема, и она была вызвана отсутствием Kotlin Runtime Library. Например, при создании проекта с пружинным инициализатором, он не добавляется автоматически. Для добавления:
right click on your project -> Build path -> Add libraries... -> User Library
и просто добавьтеorg.jetbrains.kotlin.core.KOTLIN_CONTAINER
Убедитесь, что вы обновили свой проект gradle впоследствии (
right click -> Gradle -> Refresh gradle project
)источник
Если вы сталкиваетесь с этим сообщением в проекте Spring Boot / Kotlin, просто установите для свойства "kotlin.compiler.jvmTarget" значение "1.8" в вашем файле pom.xml.
источник
В моем случае jvmTarget уже был установлен в
build.gradle
файле, как показано ниже.Но моя проблема все еще была там. Наконец, это решается после изменения версии Target JVM с 1.6 на 1.8 в Предпочтения> Другие настройки> Kotlin Compiler> Версия Target JVM. см. прикрепленную картинку,
источник