Erreur Kotlin: impossible de trouver org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7

101

J'ai installé le plugin Kotlin dans mon application (v. V1.1.1-release-Studio2.2-1) puis j'ai sélectionné "Configurer Kotlin dans le projet" J'ai sélectionné le compilateur et la version d'exécution de 1.0.7. Kotlin a mis à jour mes fichiers Gradle. Maintenant, quand j'essaye de construire, j'obtiens:

Erreur: un problème est survenu lors de la configuration du projet «: app». Impossible de résoudre toutes les dépendances pour la configuration «: app: _debugApkCopy». Impossible de trouver org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7. Requis par:

MyApplication: app: non spécifié

Je ne suis pas sûr de ce qui me manque ici.

Mike6679
la source
2
Publiez le niveau de votre projetgradle
Patel Pinkal
Voici comment vous ajoutez le support Kotlin pour Android: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Réponses:

160

remplacer

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

avec

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

Puisque la version avec jre est absolue, remplacez et synchronisez simplement le projet

Documentation officielle ici Merci pour le lien @ ROMANARMY

Bon codage :)

Leoelstin
la source
1
Quelques informations utiles dans la documentation sur jdk et jre.
R0MANARMY
Je crois qu'un jour, l'équipe Android rendra les choses un peu plus faciles, pas beaucoup, juste un peu ou du moins ils écriront des changements majeurs dans le journal des modifications avec du gras au lieu de les enfouir profondément dans le site Web pour être miné :))
Farid
12
Il m'a fallu une minute à regarder pour voir la différence entre jreet jdk- je dois vieillir.
James Wang
32

Au niveau du projet, build.gradleutilisez uniquement cette version

ext.kotlin_version = '1.3.31'

Supprimer les autres versions

Cela ne fonctionnera qu'avec la dernière version d'Android Studio 3.4

MISE À JOUR: Essayez d'utiliser la dernière version de kotlin avec le dernier studio Android pour éviter une erreur.

Patel Pinkal
la source
22
Une réponse qui spécifie une version magique à utiliser, sans explication, n'est pas très utile et devient encore moins utile avec le temps. Proposez-vous une mise à niveau à partir d'une version inférieure? Ou rétrograder à partir d'une version supérieure parce que la version supérieure a un bogue?
Don Hatch
3
@DonHatch, cette réponse a été donnée en mars pour Android Studio 2.2 qui recevait une mention d'erreur ci-dessus dans la question. Ce n'est pas pour Android Studio 3.0 ou supérieur.
Patel Pinkal
La réponse @ 0xalihn ci-dessous a une solution correcte sans numéro de version magique
Lou Morda
@PatelPinkal pouvez-vous mettre à jour votre réponse pour la dernière version du studio Android.
Arbaz.in
1
J'ai mis à jour la réponse selon la dernière version du studio Android
Arbaz.in
21

La scission de kotlin-stdliben kotlin-stdlib-jre7et kotlin-stdlib-jre8n'a été introduite qu'avec Kotlin 1.1, c'est pourquoi la dépendance ne peut pas être résolue, la version du package n'existe tout simplement pas.

Il semble que la mise à jour de vos fichiers de projet a échoué à un moment donné et a défini la version de Kotlin sur 1.0.7. S'il s'agit d'un nouveau projet et que rien ne vous empêche d'utiliser la version 1.1.1, je passerais à cela. Votre problème devrait disparaître après avoir fait cela.

skalarproduktraum
la source
3
Merci pour l'explication. Plusieurs réponses disent utiliser 1.1.1 sans explication, ce qui rendra les réponses rapidement inutiles à l'avenir.
Don Hatch
12

Dans le fichier "build.gradle", modifiez la version actuelle de Kotlin sur cette ligne et appuyez sur synk:

ext.kotlin_version = '1.1.1'

/// Cela ressemblera à:

// Fichier de construction de niveau supérieur où vous pouvez ajouter des options de configuration communes à tous les sous-projets / modules.

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
la source
8

À partir de Kotlin 1.1.2, les dépendances avec groupe org.jetbrains.kotlinsont résolues par défaut avec la version extraite du plugin appliqué. Vous pouvez fournir la version manuellement en utilisant la notation de dépendance complète comme:

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

Si vous ciblez JDK 7 ou JDK 8, vous pouvez utiliser des versions étendues de la bibliothèque standard Kotlin qui contiennent des fonctions d'extension supplémentaires pour les API ajoutées dans les nouvelles versions de JDK. Au lieu de kotlin-stdlib, utilisez l'une des dépendances suivantes:

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

Une nouvelle solution si vous utilisez Android Studio 3.2, j'ai résolu ce problème en ajoutant mavenCentral () à build.gradle du projet:

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

Vous devez ajouter la ligne comme cette commande, le crédit est pour cette réponse

Mohamed ElSawaf
la source
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
la source
Vous pourriez expliquer comment cela améliore la réponse de Mihail Salari, sur laquelle elle semble se fonder.
Nemo
3

Si vous utilisez Android Studio 3.2 et supérieur, le problème sera résolu en ajoutant google () et jcenter () à build.gradle du projet:

repositories {
        google()
        jcenter()
}
vikas
la source
2

Voici ce qui a fonctionné pour moi: Utiliser 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
la source
2

J'ai résolu ce problème en désélectionnant l' option de travail hors ligne dansSettings

entrez la description de l'image ici

andreikashin
la source
1
  1. Veuillez vérifier la version actuelle de votre Kotlin dans le chemin ci-dessous,

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

(1.0.5)passez à cette version dans le fichier gradle au niveau du projet.

Vous pouvez voir que votre chemin ci-dessus ne mentionne aucun Java - jre version, alors supprimez-le dans le fichier de niveau de votre application comme ci-dessous,

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
user8056898
la source
1

build.gradle (Projet)

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

Certaines bibliothèques nécessitent le gradle mis à jour . Tel que:

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

GL

Braian Coronel
la source
0

Dans le cas où une dépendance (transitive) utilise toujours la jrevariante de la bibliothèque Kotlin, vous pouvez forcer l'utilisation de la jdkvariante à l'aide d'une stratégie de résolution:

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
la source
0

Étapes simples:

  1. Cliquez sur Fichier> Structure du projet

  2. Cliquez sur Dépendances> Rechercher et cliquer org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (ou quelle que soit votre version actuelle)

  3. Sous Détails> section de mise à jour, cliquez sur [mettre à jour la variable] [mettre à jour les dépendances]

  4. Cliquez sur OK

Meilleures salutations

Azhar Husain Raeisi
la source
0

Après avoir corrigé la version build.gradle, il a commencé à fonctionner de 4.0.0 à 3.5.0

Kevin Kulothungan
la source