Error de Kotlin: no se pudo encontrar org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7


101

Instalé el complemento Kotlin en mi aplicación (v. V1.1.1-release-Studio2.2-1) y luego seleccioné "Configurar Kotlin en el proyecto". Seleccioné el compilador y la versión en tiempo de ejecución 1.0.7. Kotlin actualizó mis archivos de Gradle. Ahora, cuando trato de construir, obtengo:

Error: se produjo un problema al configurar el proyecto ': aplicación'. No se pudieron resolver todas las dependencias para la configuración ': app: _debugApkCopy'. No se pudo encontrar org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7. Requerido por:

MyApplication: aplicación: sin especificar

No estoy seguro de lo que me estoy perdiendo aquí.


2
Publica tu nivel de proyectogradle
Patel Pinkal

Así es como agrega el soporte de Kotlin para Android: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Respuestas:


160

reemplazar

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

con

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

Dado que la versión con jre es absoluta, simplemente reemplace y sincronice el proyecto

Documentación oficial aquí Gracias por el enlace @ ROMANARMY

Codificación feliz :)


1
Alguna información útil en los documentos sobre jdk y jre.
R0MANARMY

Creo que algún día el equipo de Android hará las cosas un poco más fáciles, no mucho, solo un poco, o al menos escribirán cambios importantes en el registro de cambios con negrita en lugar de enterrarlo en el sitio web para eliminarlo :))
Farid

12
Me tomó un minuto entero mirar fijamente para ver la diferencia entre jrey jdk—Debo estar envejeciendo.
James Wang

32

En el nivel de proyecto, build.gradleuse solo esta versión

ext.kotlin_version = '1.3.31'

Quitar otras versiones

Esto solo funcionará con la última versión de Android Studio 3.4

ACTUALIZACIÓN: intente utilizar la última versión de kotlin con el último estudio de Android para evitar un error.


22
Una respuesta que especifica una versión mágica para usar, sin explicación, no es tan útil y se vuelve aún menos útil con el tiempo. ¿Sugiere actualizar desde una versión anterior? ¿O bajar de una versión superior porque la versión superior tiene un error?
Don Hatch

3
@DonHatch esta respuesta se dio en marzo para Android Studio 2.2, que estaba recibiendo la mención de error anterior en la pregunta. No es para Android Studio 3.0 o superior.
Patel Pinkal

@ 0xalihn respuesta a continuación tiene una solución correcta sin número de versión mágico
Lou Morda

@PatelPinkal puede actualizar su respuesta a la última versión de Android Studio.
Arbaz.in


21

La división de kotlin-stdliben kotlin-stdlib-jre7ykotlin-stdlib-jre8 solo se introdujo con Kotlin 1.1, por eso la dependencia no se puede resolver, la versión del paquete simplemente no existe.

Parece que la actualización de los archivos de su proyecto falló en algún momento y configuró la versión de Kotlin en 1.0.7. Si este es un proyecto nuevo y no hay nada que le impida usar 1.1.1, cambiaría a eso. Su problema debería desaparecer después de hacer esto.


3
Gracias por explicarlo. Varias respuestas dicen usar 1.1.1 sin explicación, lo que hará que las respuestas se vuelvan inútiles rápidamente en el futuro.
Don Hatch

12

En el archivo "build.gradle", cambie la versión actual de Kotlin en esa línea y presione synk:

ext.kotlin_version = '1.1.1'

/// Eso se verá así:

// Archivo de compilación de nivel superior donde puede agregar opciones de configuración comunes a todos los subproyectos / módulos.

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 partir de Kotlin 1.1.2, las dependencias con el grupo org.jetbrains.kotlinse resuelven de forma predeterminada con la versión tomada del complemento aplicado. Puede proporcionar la versión manualmente utilizando la notación de dependencia completa como:

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

Si tiene como objetivo JDK 7 o JDK 8, puede usar versiones extendidas de la biblioteca estándar de Kotlin que contienen funciones de extensión adicionales para las API agregadas en las nuevas versiones de JDK. En lugar de kotlin-stdlib, use una de las siguientes dependencias:

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

7

Una nueva solución si usa Android Studio 3.2, resolví este problema agregando mavenCentral () a build.gradle del proyecto:

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

Debe agregar la línea como este orden, el crédito es para esta respuesta


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

Podría explicar cómo esto mejora la respuesta de Mihail Salari, en la que parece basarse.
Nemo

3

Si está utilizando Android Studio 3.2 y superior, el problema se resolverá agregando google () & jcenter () a build.gradle del proyecto:

repositories {
        google()
        jcenter()
}

2

Esto es lo que funcionó para mí: Usar 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

Resolví este problema al anular la selección de la opción de trabajo sin conexión enSettings

ingrese la descripción de la imagen aquí


1
  1. Verifique la versión actual de su Kotlin en la ruta a continuación,

    C: \ Archivos de programa \ Android \ Android Studio \ gradle \ m2repository \ org \ jetbrains \ kotlin \ kotlin-stdlib \ 1.0.5

cambie a esa versión (1.0.5)en el archivo gradle de nivel de proyecto.

Puede ver que en la ruta anterior no se menciona ningún Java jre version, así que elimínelo en el archivo gradle de nivel de aplicación como se muestra a continuación,

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

1

build.gradle (Proyecto)

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

Algunas bibliotecas requieren el gradle actualizado . Como:

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

GL


0

En caso de que una dependencia (transitiva) aún use la jrevariante de la biblioteca Kotlin, puede forzar el uso de la jdkvariante con la ayuda de una estrategia de resolución:

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

Pasos sencillos:

  1. Haga clic en Archivo> Estructura del proyecto

  2. Haga clic en Dependencias> Buscar y haga clic en org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (o cualquiera que sea su versión actual)

  3. En Detalles> sección de actualización, haga clic en [actualizar variable] [actualizar dependencias]

  4. Haga clic en Aceptar

Atentamente


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.