Por qué el complemento de Kotlin agrega reference de kotlin-stdlib-jre7 (no kotlin-stdlib) para el proyecto de Android

Android Studio 2.3.3; Complemento de Kotlin: 1.1.4; Comstackdor Kotlin: Kotlin a JVM: 1.6.

Android Studio> Nuevo proyecto> Configurar Kotlin en la acción Proyecto agrega reference para kotlin-stdlib-jre7 al file gradle. Esperaría kotlin-stdlib ya que Kotlin target JVM es 1.6.

No he encontrado una buena explicación. Por ejemplo, esta respuesta dice que

Se supone que el artefacto kotlin-stdlib-jre7 no funciona en Android, que actualmente solo admite la plataforma Java 6. Al apuntar a Android, debe usar kotlin-stdlib, que está diseñado para JRE 6

Android ya soporta Java 7 desde hace algunos años. De hecho, el soporte parcial para Java 8 está en path, al principio por medio de Jack toolchain y actualmente mediante desugaring en la cadena de herramientas por defecto .

Entonces, kotlin-stdlib-jre7 está perfectamente bien.

Como puede ver en esta respuesta , kotlin-stdlib obtuvo dos bibliotecas de extensión adicionales kotlin-stdlib-jre7 y kotlin-stdlib-jre8 en 1.1. Estas bibliotecas agregan características específicas para Java 7 y Java 8, e incluyen kotlin-stdlib como una dependencia transitiva. Ver también las notas de la versión de Kotlin 1.1 :

Soporte de biblioteca estándar Java 8

Ahora hay versiones separadas de la biblioteca estándar que admiten las nuevas API JDK agregadas en Java 7 y 8. Si necesita acceder a las nuevas API, use los artefactos maven kotlin-stdlib-jre7 y kotlin-stdlib-jre8 en lugar del kotlin estándar. stdlib. Estos artefactos son pequeñas extensiones sobre kotlin-stdlib y lo traen a su proyecto como una dependencia transitiva.

El complemento de Kotlin en las versiones actuales de Android Studio agrega kotlin-stdlib-jre7 como una dependencia al configurar Kotlin en el proyecto, ya que Android Studio y las herramientas de compilation admiten Java 7 de forma retrocompatible desde Android Studio 0.3.2, lanzado en octubre de 2013 . Consulte también ¿Admite Android JDK 6 o 7 ? Específicamente, el estado de las notas de la versión:

La característica principal de esta versión es el soporte para Android KitKat:

Compatibilidad con características de idioma como el operador de diamante, captura múltiple, try-with-resources, cadenas de conmutadores, etc. Al crear un nuevo proyecto, puede especificar un nivel de idioma de origen:

Y:

Tenga en count que puede utilizar todas estas funciones de idioma no solo con Android KitKat, sino también con versiones anteriores de Android. Hay una exception a eso: try-with-resources, que requerirá minSdkVersion 19.

  • Cómo implementar lateinit correctamente con objects de class personalizados para usar en onCreate () en Android evitando el error 'Property getter or setter expected'
  • Instant no se puede serializar al formatting apropiado incluso con jackson-datatype-jsr310
  • Posición de la label `@` en Kotlin cuando se denota el receptor con `this`
  • RxJava Valor pnetworkingeterminado para throttleFirst
  • Kotlin Oither mónada: refactorización de una llamada de constructor para manejar CPS
  • Mapa de cortocircuito de Kotlin {}. FirstOrNull {}
  • Crear una instancia de un oyente de interfaz en Kotlin
  • Propiedades de extensión de Kotlin no reconocidas en V1.0.1
  • Almacenar datos en BEAN (Spring Boot REST)
  • ¿Manera de Kotlin de filtrar valores máximos de 2 arrays?
  • Firebase-Firerestre no puede usar dos documentos