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.

  • ¿Por qué la animation de salida de Fragment no funciona?
  • no se puede convertir en org.jetbrains.kotlin.java.model.types.JeClassInitializerExecutableTypeMirror
  • El control FXML siempre es nulo cuando se usa Kotlin
  • ¿Cuándo debería usar let {} y cuando simplemente! = Null
  • Android LiveData Observer no está activo después de la primera actualización
  • RxJava2 Publicado
  • Kotlin: anula / implementa la function de acceso tipo array
  • Custom KeyDeserializer
  • Sintaxis de Kotlin 'it' en el context de Volley
  • OnCreateOptionsMenu llamado de class abstracta
  • Convertir pnetworkingicado kotlin en java