Невозможно встроить байт-код, построенный с помощью 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 добавление через описанную ниже процедуру не работает.

  1. Откройте настройки IntelliJ
  2. Перейдите в раздел Сборка, выполнение, развертывание > Компилятор > Kotlin Compiler НО Другие настройки> Компилятор Kotlin, если Android Studio> 3.4
  3. Измените версию целевой JVM на 1.8
  4. .Нажмите Применить

Причина в том, что 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())

Это может помочь вам сохранить ваш день.