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í.

Mike6679
fuente
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 :)

leoelstin
fuente
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.

Patel Pinkal
fuente
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
1
Actualicé la
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.

skalarproduktraum
fuente
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
    }
}
Mihail Salari
fuente
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"
0xAliHn
fuente
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

Mohamed ElSawaf
fuente
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
fuente
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()
}
vikas
fuente
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/'
    }
  }
}   
Olusola Omosola
fuente
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í

andreikashin
fuente
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"
usuario8056898
fuente
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

Coronel braian
fuente
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'.")
                }
            }
        }
    }
}
Brian
fuente
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

Azhar Husain Raeisi
fuente
0

Después de arreglar la versión build.gradle, comenzó a funcionar 4.0.0 a 3.5.0

Kevin Kulothungan
fuente