Saat mencoba menjalankan Contoh CorDapp ( https://github.com/corda/cordapp-example ) melalui IntelliJ, saya menerima kesalahan berikut:
Tidak dapat inline bytecode yang dibangun dengan target JVM 1.8 ke bytecode yang sedang dibangun dengan target JVM 1.6
Bagaimana saya bisa memodifikasi pengaturan IntelliJ sehingga semua bytecode dibangun dengan target JVM yang sama?
build.gradle
dependensi {compile ("org.jetbrains.kotlin: kotlin-stdlib-jdk8")}Jawaban:
app / build.gradle
GL
Gunakan fitur bahasa Java 8
sumber
kotlinOptions { jvmTarget = "1.8" }
harus cukup.Anda dapat memperbaiki masalah ini sebagai berikut:
Build, Execution, Deployment
>Compiler
>Kotlin Compiler
TAPIOther Settings
>Kotlin compiler
jika Android Studio>3.4
Target JVM version
ke1.8
Apply
sumber
Target platform
ke JVM 1.8 padaKotlin
Facet Anda di bawahGeneral
tab.Kotlin Compiler
pengaturan sebenarnya ditempatkan diOther Settings
bagian.Anda harus mengkonfigurasi sesuatu seperti berikut di build.gradle
sumber
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
kotlin-android
plugin?Dalam kasus saya, hanya mengubah Versi JVM Target seperti ini: File> Pengaturan> Kotlin Compiler> Target Versi JVM> 1.8 tidak membantu. Namun, itu menyelesaikan kesalahan waktu kompilasi. Tetapi gagal saat runtime.
Saya juga harus menambahkan berikut dalam file app build.gradle untuk membuatnya berfungsi.
sumber
Ketika solusi lain tidak bekerja untuk Anda (Mengubah versi JVM pada pengaturan Compiler dan menambahkan
jvmTarget
ke Andabuild.gradle
), karena.iml
file Anda mencoba untuk memaksa konfigurasi mereka, Anda dapat mengubah platform target dari Pengaturan Proyek.File > Project Structure
Facets
bawahProject Settings
+
tombol kecilTarget Platform
keJVM 1.8
(juga lebih baik untuk memeriksaUse project settings
opsi)sumber
<configuration version="3" platform="JVM 1.8" useProjectSettings="false">
untuktrue
dan bekerja. Namun, file terus berubah kembali!Dalam kasus saya, kode ini tidak berfungsi sampai saya pindah
apply plugin: 'kotlin-android'
dari bawah ke atas.sumber
Di Android Studio 4.3.2 menambahkan melalui prosedur di bawah ini tidak berfungsi.
Alasannya, Android studio tidak dapat menambahkan kode di bawah ini dalam file Gradle tingkat modul. Silakan tambahkan secara manual.
Hanya untuk addon, cari versi Target JVM di pencarian studio android. Ini akan membawa Anda langsung ke opsi.
sumber
sebuah gambar bernilai ribuan kata
sumber
Feb 2020
android 3.4+
Buka File -> Pengaturan -> Kotlin Compiler -> Target Versi JVM> atur ke 1.8 dan kemudian pastikan untuk melakukan File -> Sinkronkan proyek dengan file Gradle
Atau tambahkan ini ke build.gradle (module: app) di blok android :
sumber
Seperti yang tertulis dalam dokumen maven-use dari situs web Kotlin:
Anda hanya perlu memasukkan
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
ke bagian properti pom.xml Andasumber
Jika Anda memiliki banyak sourceet / modul, akan sulit untuk mengkonfigurasi jvmTarget untuk masing-masing secara terpisah.
Anda dapat mengkonfigurasi jvmTarget untuk semuanya sekaligus seperti:
Cuplikan ini dapat digunakan di tingkat atas file gradle.build Anda
Setelah memodifikasi file gradle
Reimport All Gradle Imports
. Untuk memeriksa apakah itu berhasil, bukaProject Structure
dan verifikasi bahwa IntelliJ ditugaskan dengan benarJVM 1.8
ke semua Modul Kotlin. Seharusnya terlihat seperti ini:Saya tidak akan merekomendasikan mengubah platform secara langsung di IntelliJ, karena siapa pun yang mengkloning proyek Anda untuk pertama kalinya kemungkinan akan menghadapi masalah yang sama. Mengkonfigurasi dengan benar secara gradle memiliki keuntungan bahwa IntelliJ akan berperilaku benar untuk mereka sejak awal.
sumber
Dalam kasus saya, saya menyelesaikan ini dengan mengikuti dua langkah ini
sumber
Bagi saya alasannya adalah konfigurasi ini dalam build gradle saya ada di beberapa modul dan beberapa tidak
sumber
Untuk Gradle dengan bahasa Kotlin (
*.gradle.kts
file), tambahkan ini:sumber
this
untukKotlinJvmOptions
. Bukankahthis
penerima dikotlinOptions
blok sudahKotlinJvmOptions
? Tetap tidak bekerja untuk saya tanpa para pemaindalam kebanyakan kasus ini sudah cukup:
jika Anda telah mendeklarasikan tugas Gradle khusus seperti
integrationTest
misalnya, tambahkan konfigurasicompile<YourTaskName>Kotlin
juga:sumber
Pengaturan
sourceCompatibility = JavaVersion.VERSION_1_8
memungkinkan desugaring, tetapi saat ini tidak dapat menghapus semua fitur Java 8 yang digunakan oleh kompiler Kotlin.Perbaiki - Pengaturan
kotlinOptions.jvmTarget to JavaVersion.VERSION_1_8
dalam modul aplikasi Gradle akan memperbaiki masalah.sumber
Semua jawaban di sini menggunakan gradle tetapi jika seseorang seperti saya berakhir di sini dan membutuhkan jawaban untuk pakar:
Perubahan dari pola pikir jetbrains untuk kotlin-jvm adalah
<configuration></configuration>
menentukan jvmTarget. Dalam kasus saya 11sumber
Tidak ada yang berhasil untuk saya sampai saya memperbarui ketergantungan plugin kotlin saya.
Coba ini:
1. Validasi cahce dan mulai ulang.
2. Sinkronkan proyek (setidaknya cobalah)
3. Buka File -> Struktur Proyek -> Saran
4. Jika ada pembaruan tentang Kotlin, perbarui.
Semoga ini bisa membantu seseorang.
sumber
Jika menggunakan Visual Studio Code ** dengan ekstensi Kotlin, pergi ke manajemen plugin Crtl + Shift + x, ketik kotlin dan klik kelola (gir kecil) >> Konfigurasikan Pengaturan Ekstensi
di Kotlin >> Compiler >> Jvm: Target - ketikkan versi java. Dalam situasi saya hanya mengetik 1,8
Dan kemudian restart :-)
** vscode atau hanya 'kode' untuk linux
sumber
Dalam kasus saya File> Setting> Kotlin Compiler> Target JVM Version> 1.8
sumber
Saya menggunakan Kotlin dan Gradle untuk pengembangan JVM normal, (bukan android) dan ini bekerja untuk saya di
build.gradle
:sumber
jika Anda berada di proyek android
di build.gradle aplikasi Anda di bawah android {}
sumber
Jika Anda menggunakan Eclipse dengan asumsi Anda mengunduh plugin Kotlin:
Klik kanan proyek -> Properti -> Kotlin Compiler -> Aktifkan pengaturan spesifik proyek -> versi target JVM "1.8"
sumber
Untuk versi terbaru dari Android Studio, jika hanya mengubah versi Kotlin Target VM tidak berfungsi.
File ➞ Struktur Proyek ➞ Modul (
app
): atur "Kompatibilitas Sumber" dan "Kompatibilitas Target" menjadi "1,8 (Java 8)". Tekan "OK" dan sinkronkan proyek dengan Gradle.sumber
Menggunakan Kotlin Gradle DSL, ini memecahkan masalah bagi saya. Saya menambahkan ini ke build.gradle.kts. Ini adalah tambahan dari jawaban Joel
sumber
Petunjuk lain untuk pengguna Eclipse. Setelah mengecek pengaturan target jvm yang ditunjukkan oleh pengguna lain, saya masih memiliki masalah yang sama, dan itu disebabkan oleh hilangnya Perpustakaan Kotlin Runtime. Misalnya, ketika membuat proyek dengan inisialisasi pegas, itu tidak ditambahkan secara otomatis. Untuk menambahkannya:,
right click on your project -> Build path -> Add libraries... -> User Library
dan cukup tambahkanorg.jetbrains.kotlin.core.KOTLIN_CONTAINER
Pastikan Anda menyegarkan proyek gradle Anda setelahnya (
right click -> Gradle -> Refresh gradle project
)sumber
Jika Anda menghadapi pesan ini dalam proyek Spring Boot / Kotlin, cukup atur properti "kotlin.compiler.jvmTarget" menjadi "1,8" di pom.xml Anda.
sumber
Dalam kasus saya, jvmTarget telah ditetapkan dalam
build.gradle
file seperti di bawah ini.Tapi masalah saya masih ada. Akhirnya, itu diselesaikan setelah Mengubah versi Target JVM dari 1,6 ke 1,8 di Preferensi> Pengaturan Lainnya> Kotlin Compiler> Target JVM versi. lihat gambar terlampir,
sumber