Kotlin-Fehler: org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7 konnte nicht gefunden werden


101

Ich habe das Kotlin-Plugin in meiner App installiert (v. 1.1.1-release-Studio2.2-1) und dann "Kotlin in Projekt konfigurieren" ausgewählt. Ich habe die Compiler- und Laufzeitversion von 1.0.7 ausgewählt. Kotlin hat meine Gradle-Dateien aktualisiert. Wenn ich jetzt versuche einzubauen, bekomme ich:

Fehler: Beim Konfigurieren des Projekts ': app' ist ein Problem aufgetreten. Es konnten nicht alle Abhängigkeiten für die Konfiguration ': app: _debugApkCopy' aufgelöst werden. Org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7 konnte nicht gefunden werden. Benötigt von:

MyApplication: App: nicht angegeben

Ich bin mir nicht sicher, was ich hier vermisse.



So fügen Sie Kotlin-Unterstützung für Android hinzu: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Antworten:


159

ersetzen

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

mit

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

Da die Version mit jre absolut ist, ersetzen und synchronisieren Sie einfach das Projekt

Offizielle Dokumentation hier Danke für den Link @ ROMANARMY

Viel Spaß beim Codieren :)


1
Einige hilfreiche Informationen in den Dokumenten zu jdk und jre.
R0MANARMY

Ich glaube, eines Tages wird das Android-Team die Dinge ein wenig einfacher machen, nicht viel, nur ein wenig, oder zumindest werden sie große Änderungen im Changelog fett schreiben, anstatt es tief in die Website zu vergraben, um es abzubauen :))
Farid

11
Ich brauchte eine volle Minute, um den Unterschied zwischen jreund jdkzu erkennen - ich muss alt werden.
James Wang

32

In Projektebene build.gradleVerwendung nur diese Version

ext.kotlin_version = '1.3.31'

Entfernen Sie andere Versionen

Dies funktioniert nur mit der neuesten Version von Android Studio 3.4

UPDATE: Versuchen Sie, die neueste Version von kotlin mit dem neuesten Android Studio zu verwenden, um Fehler zu vermeiden.


22
Eine Antwort, die eine magische Version angibt, die ohne Erklärung verwendet werden soll, ist nicht allzu hilfreich und wird mit der Zeit noch weniger hilfreich. Schlagen Sie ein Upgrade von einer niedrigeren Version vor? Oder ein Downgrade von einer höheren Version, weil die höhere Version einen Fehler aufweist?
Don Hatch

3
@ DonHatch Diese Antwort wurde im März für Android Studio 2.2 gegeben, das oben in der Frage als Fehler erwähnt wurde. Es ist nicht für Android Studio 3.0 oder höher.
Patel Pinkal

@ 0xalihn Antwort unten hat eine korrekte Lösung ohne magische Versionsnummer
Lou Morda

@PatelPinkal können Sie Ihre Antwort für die neueste Android Studio-Version aktualisieren.
Arbaz.in

1
Ich habe die Antwort gemäß der neuesten Version von Android Studio aktualisiert
Arbaz.in

21

Die Aufteilung kotlin-stdlibin kotlin-stdlib-jre7und kotlin-stdlib-jre8wurde nur mit Kotlin 1.1 eingeführt, deshalb kann die Abhängigkeit nicht aufgelöst werden, die Paketversion existiert einfach nicht.

Es sieht so aus, als ob das Update Ihrer Projektdateien irgendwann fehlgeschlagen ist und die Kotlin-Version auf 1.0.7 gesetzt wurde. Wenn dies ein neues Projekt ist und Sie nichts daran hindert, 1.1.1 zu verwenden, würde ich darauf umsteigen. Ihr Problem sollte danach behoben sein.


3
Danke für die Erklärung. In mehreren Antworten heißt es, dass 1.1.1 ohne Erklärung verwendet wird, wodurch die Antworten in Zukunft schnell unbrauchbar werden.
Don Hatch

12

Ändern Sie in der Datei "build.gradle" die aktuelle Kotlin-Version in dieser Zeile und drücken Sie "Synchronisieren":

ext.kotlin_version = '1.1.1'

/// Das wird so aussehen:

// Build-Datei der obersten Ebene, in der Sie Konfigurationsoptionen hinzufügen können, die allen Unterprojekten / Modulen gemeinsam sind.

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

Ab Kotlin 1.1.2 werden die Abhängigkeiten mit der Gruppe org.jetbrains.kotlinstandardmäßig mit der Version aus dem angewendeten Plugin aufgelöst. Sie können die Version manuell unter Verwendung der vollständigen Abhängigkeitsnotation wie folgt bereitstellen:

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

Wenn Sie auf JDK 7 oder JDK 8 abzielen, können Sie erweiterte Versionen der Kotlin-Standardbibliothek verwenden, die zusätzliche Erweiterungsfunktionen für APIs enthalten, die in neuen JDK-Versionen hinzugefügt wurden. Verwenden Sie anstelle von kotlin-stdlib eine der folgenden Abhängigkeiten:

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

6

Eine neue Lösung, wenn Sie Android Studio 3.2 verwenden. Ich habe dieses Problem gelöst, indem ich mavenCentral () zu build.gradle des Projekts hinzugefügt habe:

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

Sie sollten die Zeile als diese Reihenfolge hinzufügen, die Gutschrift gilt für diese Antwort


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

Sie könnten näher erläutern, wie dies die Antwort von Mihail Salari verbessert, auf der sie zu beruhen scheint.
Nemo

3

Wenn Sie Android Studio 3.2 oder höher verwenden, wird das Problem durch Hinzufügen von google () & jcenter () zu build.gradle des Projekts behoben:

repositories {
        google()
        jcenter()
}

2

Das hat bei mir funktioniert: Verwenden von 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

Ich habe dieses Problem durch Deaktivieren der Option Offline-Arbeit in gelöstSettings

Geben Sie hier die Bildbeschreibung ein


1
  1. Bitte überprüfen Sie die aktuelle Version Ihres Kotlin im folgenden Pfad.

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

Wechseln Sie zu dieser Version (1.0.5)in der Gradle-Datei auf Projektebene.

Sie können in Ihrem obigen Pfad sehen, dass kein Java erwähnt wird - jre versionentfernen Sie also in Ihrer Gradle-Datei auf App-Ebene wie folgt:

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

1

build.gradle (Projekt)

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

Einige Bibliotheken benötigen den aktualisierten Gradle . Sowie:

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

GL


0

Falls eine (transitive) Abhängigkeit weiterhin die jreVariante der Kotlin-Bibliothek verwendet, können Sie die Verwendung der jdkVariante mithilfe einer Auflösungsstrategie erzwingen :

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

Einfache Schritte:

  1. Klicken Sie auf Datei> Projektstruktur

  2. Klicken Sie auf Abhängigkeiten> Suchen und klicken Sie auf org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (oder was auch immer Ihre aktuelle Version ist)

  3. Klicken Sie im Abschnitt Details> Aktualisieren auf [Variable aktualisieren] [Abhängigkeiten aktualisieren].

  4. OK klicken

Freundliche Grüße


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.