Невозможно встроить байт-код, построенный с помощью JVM target 1.8, в байт-код, который строится с помощью JVM target 1.6
При попытке запустить пример CorDapp (https://github.com/corda/cordapp-example) через IntelliJ, я получаю следующую ошибку:
Невозможно встроить байт-код, построенный с использованием JVM-цели 1.8, в байт-код, который построенный с целью JVM 1.6
Как изменить параметры IntelliJ так, чтобы весь байт-код был построен с той же целью JVM?
Ответы
Ответ 1
Вы можете исправить эту проблему следующим образом:
- Откройте настройки IntelliJ
- Перейдите в
Build, Execution, Deployment
> Compiler
> Compiler
Kotlin Compiler
НО" Other Settings
> Kotlin compiler
если Android Studio> 3.4
- Измените
Target JVM version
на 1.8
- Нажмите
Apply
Ответ 2
Приложение /build.gradle
android {
...
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
GL
Источник
Ответ 3
вы должны настроить что-то вроде следующего в build.gradle
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
Ответ 4
Когда другие решения не сработали для вас (изменив версию JVM в настройках компилятора и добавив jvmTarget
в свой build.gradle
), из-за того, что ваши файлы .iml
пытаются принудительно настроить их конфигурации, вы можете изменить целевую платформу из настроек проекта.
- Открыть
File > Project Structure
- Перейти к
Facets
в Project Settings
- Если он пуст, нажмите на маленькую кнопку
+
- Нажмите на свой модуль/модули Kotlin
- Измените
Target Platform
на JVM 1.8
(также лучше проверить опцию Use project settings
)
Ответ 5
В Android Studio 4.3.2 добавление через описанную ниже процедуру не работает.
- Откройте настройки IntelliJ
- Перейдите в раздел Сборка, выполнение, развертывание > Компилятор > Kotlin Compiler НО Другие настройки> Компилятор Kotlin, если Android Studio> 3.4
- Измените версию целевой JVM на 1.8
- .Нажмите Применить
Причина в том, что Android studio не может добавить приведенный ниже код в файл Gradle уровня модуля. Пожалуйста, добавьте его вручную.
kotlinOptions {
jvmTarget = "1.8"
}
Только для дополнения найдите целевую версию JVM в поиске студии android. Это приведет вас прямо к варианту.
![enter image description here]()
Ответ 6
Как написано в документах using-maven с сайта Kotlin:
Вам просто нужно поместить <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
в раздел свойств вашего pom.xml.
Ответ 7
В моем случае просто поменять Target JVM Version следующим образом: File> Setting> Kotlin Compiler> Target JVM Version> 1.8 не помогло. Однако, это решило ошибку времени компиляции. Но не удалось во время выполнения.
Я также должен был добавить следующее в файл app build.gradle, чтобы он работал.
android {
// Other code here...
kotlinOptions {
jvmTarget = "1.8"
}
}
Ответ 8
![a picture is worth a thousand words]()
одна картинка стоит тысячи слов
Ответ 9
Для меня причина была в том, что эта конфигурация в моей сборке была в некоторых модулях, а в некоторых - нет.
android {
...
kotlinOptions {
val options = this as KotlinJvmOptions
options.jvmTarget = "1.8"
}
...
android {
Ответ 10
Для Gradle с языком Kotlin (файлы *.gradle.kts
) добавьте следующее:
android {
[...]
kotlinOptions {
this as KotlinJvmOptions
jvmTarget = "1.8"
}
}
Ответ 11
В моем случае я решил эту проблему, выполнив следующие два шага.
1. Go to android studio preferences -> other settings -> kotlin compiler -> set Target JVM version = 1.8
if it does not work then go to the second option.
2. In your module-level build.gradle file add
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
Ответ 12
В последних версиях Android Studio изменение только версии Kotlin Target VM не помогло.
Файл Structure Структура проекта ➞ Модули (app
): установите "Совместимость источника" и "Совместимость цели" на "1.8 (Java 8)". Нажмите "ОК" и синхронизируйте проект с Gradle.
Ответ 13
Если вы используете Eclipse, предполагая, что вы загрузили плагин Kotlin:
Щелкните правой кнопкой мыши по проекту → Свойства → Kotlin Compiler → Включить конкретные настройки проекта → Целевая версия JVM "1.8"
Ответ 14
В моем случае File> Setting> Kotlin Compiler> Target JVM Version> 1.8
Ответ 15
Вы также можете попытаться сделать недействительной кэш-память Intellij и перезапустить ее (File> Invalidate caches/restart). Попробовав шаги, описанные выше, мне показалось, что у меня все получилось, хотя я не могу исключить, что только перезапуск изменил ситуацию.
Ответ 16
Если вы используете Visual Studio Code ** с расширением Kotlin, перейдите в плагин управления Crtl + Shift + x, введите kotlin и нажмите на управление (маленькая шестеренка) >> Настройка параметров расширения
на Kotlin >> Компилятор >> Jvm: Target - введите версию Java. В моей ситуации просто набрал 1.8
А затем перезапустите: -)
** vscode или просто "код" для Linux
Ответ 17
Если вы закончили с изменением версий и все так и не смогли запустить свой код.
Попробуйте это.
Создайте класс как HeaderInterceptor
.
class HeaderInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response = chain.run {
proceed(
request()
.newBuilder()
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.addHeader(
"Authorization",
"Bearer" + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwcm9maWxlX2lkIjo0NDcsImxvY2F0aW9uX2lkIjoxMTgyLCJpc3N1ZWRfZm9yIjoiY3VzdG9tZXIiLCJzdWIiOjY3MSwiaXNzIjoiaHR0cHM6Ly9hcGkubmVvbi1tb2JpbGUuY29tL2FwaS9mMS9maXJlYmFzZS1sb2dpbiIsImlhdCI6MTU2ODE3OTgyMSwiZXhwIjoxNTcwNzcxODIxLCJuYmYiOjE1NjgxNzk4MjEsImp0aSI6ImI1WGNEVDh6TlhTSWprb04ifQ.vNU--vvlz6Qy6qzwooCQxYL2gtB79v0t378qVWXWxcs"
)
.build()
)
}
}
А теперь просто добавьте его как
.addInterceptor(HeaderInterceptor())
Это может помочь вам сохранить ваш день.