Kesalahan Kotlin: Tidak dapat menemukan org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7

101

Saya menginstal plugin Kotlin ke dalam aplikasi saya (v. V1.1.1-release-Studio2.2-1) dan kemudian memilih "Configure Kotlin in Project" Saya memilih compiler dan runtime versi 1.0.7. Kotlin memperbarui file Gradle saya. Sekarang ketika saya mencoba membangun, saya mendapatkan:

Kesalahan: Terjadi masalah saat mengonfigurasi proyek ': app'. Tidak dapat menyelesaikan semua dependensi untuk konfigurasi ': app: _debugApkCopy'. Tidak dapat menemukan org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7. Diperlukan oleh:

MyApplication: app: tidak ditentukan

Saya tidak yakin apa yang saya lewatkan di sini.

Mike6679
sumber
2
Posting level proyek Andagradle
Patel Pinkal
Ini adalah cara Anda menambahkan dukungan Kotlin untuk Android: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Jawaban:

160

menggantikan

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

dengan

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

Karena versi dengan jre adalah mutlak, cukup ganti dan sinkronkan proyeknya

Dokumentasi Resmi di sini Terima kasih untuk tautannya @ ROMANARMY

Selamat Coding :)

leoelstin
sumber
1
Beberapa informasi berguna di dokumen tentang jdk dan jre.
R0MANARMY
Saya yakin suatu hari tim Android akan membuat segalanya lebih mudah tidak hanya sedikit atau setidaknya mereka akan menulis perubahan besar di changelog dengan huruf tebal alih-alih menguburnya jauh ke dalam situs web untuk ditambang :))
Farid
12
Aku butuh waktu semenit penuh untuk melihat perbedaan antara jredan jdk—Aku pasti semakin tua.
James Wang
32

Di tingkat proyek, build.gradlegunakan hanya versi ini

ext.kotlin_version = '1.3.31'

Hapus versi lain

Ini hanya akan berfungsi dengan versi terbaru android studio 3.4

PEMBARUAN: Coba gunakan versi terbaru kotlin dengan studio Android terbaru untuk menghindari kesalahan.

Patel Pinkal
sumber
22
Jawaban yang menentukan versi sihir untuk digunakan, tanpa penjelasan, tidak terlalu membantu dan menjadi kurang berguna seiring waktu. Apakah Anda menyarankan untuk mengupgrade dari versi yang lebih rendah? Atau menurunkan dari versi yang lebih tinggi karena versi yang lebih tinggi memiliki bug?
Don Hatch
3
@DonHatch jawaban ini diberikan pada bulan Maret untuk android studio 2.2 yang mendapatkan kesalahan yang disebutkan di atas dalam pertanyaan. Ini bukan untuk android studio 3.0 atau lebih tinggi.
Patel Pinkal
@ 0xalihn jawaban di bawah ini memiliki solusi yang benar tanpa nomor versi ajaib
Lou Morda
@PatelPinkal dapatkah Anda memperbarui jawaban Anda untuk versi studio android terbaru.
Arbaz. Dalam
1
saya memperbarui jawaban sesuai versi terbaru dari studio Android
Arbaz.
21

Pemisahan kotlin-stdlibmenjadi kotlin-stdlib-jre7dan kotlin-stdlib-jre8hanya diperkenalkan dengan Kotlin 1.1, itulah sebabnya ketergantungan tidak dapat diselesaikan, versi paket tidak ada.

Sepertinya pembaruan file proyek Anda gagal di beberapa titik dan menyetel versi Kotlin ke 1.0.7. Jika ini adalah proyek baru dan tidak ada yang menghalangi Anda untuk menggunakan 1.1.1, saya akan beralih ke itu. Masalah Anda harus hilang setelah melakukan ini.

skalarproduktraum.dll
sumber
3
Terima kasih telah menjelaskan. Beberapa jawaban mengatakan gunakan 1.1.1 tanpa penjelasan, yang akan membuat jawaban dengan cepat menjadi tidak berguna di kemudian hari.
Don Hatch
12

Dalam file "build.gradle", ubah versi Kotlin saat ini pada baris tersebut dan tekan sinkronkan:

ext.kotlin_version = '1.1.1'

/// Itu akan terlihat seperti:

// File build tingkat atas tempat Anda dapat menambahkan opsi konfigurasi yang umum untuk semua subproyek / modul.

buildscript {
    ext.kotlin_version = '1.1.1'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
Mihail Salari
sumber
8

Dimulai dengan Kotlin 1.1.2, dependensi dengan grup org.jetbrains.kotlinsecara default diselesaikan dengan versi yang diambil dari plugin yang diterapkan. Anda dapat memberikan versi secara manual menggunakan notasi dependensi lengkap seperti:

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

Jika Anda menargetkan JDK 7 atau JDK 8, Anda dapat menggunakan versi tambahan dari library standar Kotlin yang berisi fungsi ekstensi tambahan untuk API yang ditambahkan dalam versi JDK baru. Daripada kotlin-stdlib, gunakan salah satu dependensi berikut:

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
0xAliHn
sumber
7

Solusi baru jika Anda menggunakan Android Studio 3.2, saya menyelesaikan masalah ini dengan menambahkan mavenCentral () ke build.gradle proyek:

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }
}

allprojects {
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
}

Anda harus menambahkan baris sebagai urutan ini, yang dikreditkan untuk jawaban ini

Mohamed ElSawaf
sumber
4
buildscript {
    **ext.kotlin_version = '1.1.1'**  //Add this line
    repositories {
        **jcenter()**                 //Add this line
        google()
    }
    dependencies {
//        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        **jcenter()**                 //Add this line
        google()
        maven { url "https://jitpack.io" }
    }
}
chirag khandla
sumber
Anda dapat menguraikan bagaimana hal ini meningkatkan jawaban Mihail Salari, yang tampaknya menjadi dasar hal itu.
Nemo
3

Jika Anda menggunakan Android Studio 3.2 & yang lebih baru, maka masalah akan diselesaikan dengan menambahkan google () & jcenter () ke build.gradle proyek:

repositories {
        google()
        jcenter()
}
Vikas
sumber
2

Inilah yang berhasil untuk saya: Menggunakan Gradle 4.8.1

buildscript {
    ext.kotlin_version = '1.1.1' 
repositories {
    jcenter()
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.0'}
}
allprojects {
    repositories {
        mavenLocal()
        jcenter()
        google()
        maven {
            url "$rootDir/../node_modules/react-native/android"
        }
    maven {
            url 'https://dl.bintray.com/kotlin/kotlin-dev/'
    }
  }
}   
Olusola Omosola
sumber
2

Saya telah memecahkan masalah ini dengan membatalkan pilihan opsi kerja Offline diSettings

masukkan deskripsi gambar di sini

andreikashin
sumber
1
  1. Silakan periksa versi Kotlin Anda saat ini di jalur di bawah ini,

    C: \ Program Files \ Android \ Android Studio \ gradle \ m2repository \ org \ jetbrains \ kotlin \ kotlin-stdlib \ 1.0.5

ubah ke versi itu (1.0.5)dalam file gradle tingkat proyek.

Anda dapat melihat di jalur Anda di atas tidak disebutkan Java apa pun - jre version, jadi hapus dalam file gradle level aplikasi Anda seperti di bawah ini,

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
pengguna8056898
sumber
1

build.gradle (Proyek)

buildScript {
    ...
    dependencies {
        ...
        classpath 'com.android.tools.build:gradle:4.0.0-rc01'
    }
} 

gradle / wrapper / gradle-wrapper.properties

...
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

Beberapa perpustakaan memerlukan gradle yang diperbarui . Seperti:

androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines"

GL

Braian Coronel
sumber
0

Jika dependensi (transitif) masih menggunakan jrevarian dari library Kotlin, Anda dapat memaksa penggunaan jdkvarian dengan bantuan strategi resolusi:

configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->
            details.requested.with {
                if (group == "org.jetbrains.kotlin" && name.startsWith("kotlin-stdlib-jre")) {
                    details.useTarget(group: group, name: name.replace("jre", "jdk"), version: version)
                    details.because("Force use of 'kotlin-stdlib-jdk' in favor of deprecated 'kotlin-stdlib-jre'.")
                }
            }
        }
    }
}
Brian
sumber
0

Langkah Sederhana:

  1. Klik File> Struktur Proyek

  2. Klik Dependensi> Temukan dan Klik org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (atau apa pun versi Anda saat ini)

  3. Di bagian Detail> perbarui, klik [perbarui variabel] [perbarui ketergantungan]

  4. Klik Ok

Salam Hormat

Azhar Husain Raeisi
sumber
0

Setelah memperbaiki versi build.gradle, versi 4.0.0 hingga 3.5.0 mulai berfungsi

Kevin Kulothungan
sumber