android - supports - kotlin-stdlib-jre7 está en desuso. Por favor use kotlin-stdlib-jdk7 en su lugar
kotlin stdlib gradle (5)
Ayer actualicé la versión de Android Studio y la versión de Kotlin.
Versión de Android Studio: 3.1.2
Versión de Kotlin: 1.2.41
Cuando creo un proyecto de Android con esta configuración, recibo el mensaje de advertencia del compilador de Kotlin que dice:
w: /home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.41/9e7a6k582asp.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.cf.png/cotlin-stdlib-jre7/1. kotlin-stdlib-jre7 está en desuso. Por favor use kotlin-stdlib-jdk7 en su lugar
Cambiado según la sugerencia, entonces obtengo el siguiente error
Entradas inesperadas: ImmutableJarInput {name = org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.2.41, file = / home / ganeshtikone / Workspace / May-2018 / fhs / app / build / intermediates / transforms / desugar / stage / debug / 45.jar, contentTypes = CLASSES, scopes = EXTERNAL_LIBRARIES, status = REMOVED}
Actualización importante
Debe comprobar la versión de JDK antes de configurar la configuración.
La página de configuración de Kotlin gradle tiene información detallada sobre esto.
En primer lugar, compruebe su versión kotlin en el archivo de gradle.
if (
kotlin_version == ''1.2.x''
) (Usejdk
NOTjre
)
Primero verifique su versión jdk en Archivo> Estructura del proyecto .
O compruebe en build.gradle
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
if (jdk_version == 1.8)
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
if (jdk_version == 1.7)
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
if (jdk_version es <1.7)
implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
else if (la versión NO jdk está configurada en la Estructura del Proyecto)
if(Android_Studio_Version < 2.2.1){
your_jdk_version = 1.7;
}
else {
your_jdk_version = 1.8;
}
Porque Android Studio está incluido con jdk 1.8 desde la versión 2.2.1.
2. else else si (
kotlin_version == ''1.1.x''
) (Use jre NOT jdk)
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" // or jre8
Actualizar la versión de Kotlin?
Puede actualizar la versión de Kotlin desde Herramientas> Kotlin> Configurar actualizaciones de Kotlin
Algo está importando de forma transitiva esas bibliotecas. Ejecutar dependencies
tareas Gradle para averiguar qué.
En mi caso, fue io.vertx:vertx-lang-kotlin-coroutines:3.5.1
.
Si no hay una actualización para la dependencia, no hay mucho que puedas hacer al respecto
Debes intercambiar los siguientes códigos:
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
No jre> jdk
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
Después de leer Kotlin Gradle Script Topic, descubro que algunos ponits
Si se dirige a 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:
compilar "org.jetbrains.kotlin: kotlin-stdlib-jdk7"
compilar "org.jetbrains.kotlin: kotlin-stdlib-jdk8"
Utilicé la implementación "org.jetbrains.kotlin: kotlin-stdlib-jdk8" en mi proyecto. Creo que es debido a compileOptions establecido en build.graddle
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Vaya a Herramientas> Kotlin> Configurar actualizaciones del complemento de Kotlin y busque actualizaciones, luego en su aplicación, reemplace jre con jdk
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"