Errore di Kotlin: impossibile trovare org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7


101

Ho installato il plug-in Kotlin nella mia app (v. V1.1.1-release-Studio2.2-1) e quindi ho selezionato "Configura Kotlin nel progetto" Ho selezionato il compilatore e la versione runtime di 1.0.7. Kotlin ha aggiornato i miei file Gradle. Ora, quando provo a costruire, ottengo:

Errore: si è verificato un problema durante la configurazione del progetto ": app". Impossibile risolvere tutte le dipendenze per la configurazione ": app: _debugApkCopy". Impossibile trovare org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7. Richiesto dalla:

MyApplication: app: non specificato

Non sono sicuro di cosa mi manchi qui.


2
Pubblica il tuo livello di progettogradle
Patel Pinkal

Ecco come aggiungere il supporto Kotlin per Android: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Risposte:


160

sostituire

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

con

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

Poiché la versione con jre è assoluta, è sufficiente sostituire e sincronizzare il progetto

Documentazione ufficiale qui Grazie per il link @ ROMANARMY

Codifica felice :)


1
Alcune informazioni utili nei documenti su jdk e jre.
R0MANARMY

Credo che un giorno il team di Android renderà le cose un po 'più facili, non molto solo un po', o almeno scriveranno importanti modifiche nel log delle modifiche in grassetto invece di seppellirle in profondità nel sito Web per essere estratte :))
Farid

12
Mi ci è voluto un intero minuto di fissazione per vedere la differenza tra jree jdk—Sto invecchiando.
James Wang

32

A livello di progetto build.gradleusa solo questa versione

ext.kotlin_version = '1.3.31'

Rimuovi altre versioni

Funzionerà solo con l'ultima versione di Android Studio 3.4

AGGIORNAMENTO: prova a utilizzare l'ultima versione di kotlin con l'ultimo studio Android per evitare errori.


22
Una risposta che specifica una versione magica da utilizzare, senza spiegazione, non è poi così utile e diventa ancora meno utile nel tempo. Stai suggerendo di eseguire l'aggiornamento da una versione inferiore? O il downgrade da una versione superiore perché la versione superiore ha un bug?
Don Hatch,

3
@DonHatch questa risposta è stata data a marzo per Android Studio 2.2 che riceveva la menzione dell'errore sopra nella domanda. Non è per Android Studio 3.0 o versioni successive.
Patel Pinkal

@ 0xalihn risposta di seguito ha una soluzione corretta senza numero di versione magica
Lou Morda

@PatelPinkal puoi aggiornare la tua risposta per l'ultima versione di Android Studio.
Arbaz. In

1
ho aggiornato la risposta secondo l'ultima versione di Android Studio
Arbaz.in

21

La divisione kotlin-stdlibin kotlin-stdlib-jre7ed è kotlin-stdlib-jre8stata introdotta solo con Kotlin 1.1, ecco perché la dipendenza non può essere risolta, la versione del pacchetto semplicemente non esiste.

Sembra che l'aggiornamento dei file di progetto non sia riuscito a un certo punto e ha impostato la versione di Kotlin su 1.0.7. Se questo è un nuovo progetto e non c'è nulla che ti trattiene dall'usare 1.1.1, passerei a quello. Il tuo problema dovrebbe essere risolto dopo averlo fatto.


3
Grazie per aver spiegato. Diverse risposte dicono di usare 1.1.1 senza spiegazione, il che renderà le risposte rapidamente inutili in futuro.
Don Hatch,

12

Nel file "build.gradle", cambia la versione corrente di Kotlin su quella riga e premi synk:

ext.kotlin_version = '1.1.1'

/// Questo sarà simile a:

// File di build di primo livello in cui è possibile aggiungere opzioni di configurazione comuni a tutti i sottoprogetti / moduli.

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
    }
}

8

A partire da Kotlin 1.1.2, le dipendenze con gruppo org.jetbrains.kotlinvengono risolte di default con la versione presa dal plugin applicato. Puoi fornire la versione manualmente utilizzando la notazione completa delle dipendenze come:

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

Se stai prendendo di mira JDK 7 o JDK 8, puoi utilizzare versioni estese della libreria standard Kotlin che contengono funzioni di estensione aggiuntive per le API aggiunte nelle nuove versioni di JDK. Invece di kotlin-stdlib, utilizza una delle seguenti dipendenze:

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

7

Una nuova soluzione se usi Android Studio 3.2, ho risolto questo problema aggiungendo mavenCentral () a build.gradle del progetto:

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()
    }
}

Dovresti aggiungere la riga in questo ordine, l'accredito è per questa risposta


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" }
    }
}

Potresti approfondire come questo migliora la risposta di Mihail Salari, su cui sembra essere basata.
Nemo

3

Se utilizzi Android Studio 3.2 e versioni successive, il problema verrà risolto aggiungendo google () e jcenter () a build.gradle del progetto:

repositories {
        google()
        jcenter()
}

2

Questo è ciò che ha funzionato per me: usare 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/'
    }
  }
}   

2

Ho risolto questo problema deselezionando l' opzione Lavoro offline inSettings

inserisci qui la descrizione dell'immagine


1
  1. Controlla la versione corrente del tuo Kotlin nel percorso sottostante,

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

passare a quella versione (1.0.5) nel file gradle a livello di progetto.

Puoi vedere nel tuo percorso sopra non menzionato alcun Java jre version, quindi rimuovi nel file gradle a livello di app come di seguito,

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

1

build.gradle (progetto)

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

Alcune biblioteche richiedono il gradle aggiornato . Ad esempio:

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

GL


0

Nel caso in cui una dipendenza (transitiva) utilizzi ancora la jrevariante della libreria Kotlin, puoi forzare l'uso della jdkvariante con l'aiuto di una strategia di risoluzione:

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'.")
                }
            }
        }
    }
}

0

Semplici passaggi:

  1. Fare clic su File> Struttura del progetto

  2. Fare clic su Dipendenze> Trova e fare clic su org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (o qualunque sia la versione corrente)

  3. In Dettagli> sezione Aggiorna, fai clic su [Aggiorna variabile] [Aggiorna dipendenze]

  4. Fare clic su OK

I migliori saluti


0

Dopo aver corretto la versione build.gradle, ha iniziato a funzionare dalla 4.0.0 alla 3.5.0

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.