Skip to content

Most visited

Recently visited

navigation

Usar funciones del lenguaje de Java 8

Android admite todas las funciones del lenguaje Java 7 y un subconjunto de funciones del lenguaje Java 8 que varían según la versión de la plataforma. En esta página, se describen las nuevas funciones del lenguaje que puedes usar, la manera de configurar tu proyecto correctamente para usarlas y los problemas conocidos con que puedes experimentar.

Nota: Cuando se desarrollan apps para Android, el uso de funciones del lenguaje Java 8 es opcional. Puedes mantener los valores de compatibilidad de origen y destino de tu proyecto en Java 7, pero debes usar JDK 8 para la compilación.

Para la compatibilidad con funciones del lenguaje Java 8 se requiere un nuevo compilador denominado Jack. Jack es compatible únicamente con Android Studio 2.1 y versiones posteriores. Por lo tanto, si deseas usar funciones del lenguaje Java 8, debes usar Android Studio 2.1 para compilar tu app.

Si ya cuentas con Android Studio, asegúrate de actualizarlo a la última versión. Para ello, haz clic en Help > Check for Update (en Mac, Android Studio > Check for Updates). Si todavía no cuentas con el IDE en tu estación de trabajo, descarga Android Studio aquí.

Funciones y API admitidas del lenguaje Java 8

Android no admite todas las funciones del lenguaje Java 8. Sin embargo, las siguientes funciones están disponibles para el desarrollo de apps orientadas a Android 7.0 (nivel de API 24):

Nota: La información de anotación de tipos solo está disponible en el tiempo de compilación y no durante el tiempo de ejecución.

Para probar expresiones Lambda, referencias de métodos y anotaciones de tipos en versiones anteriores de Android, accede a tu archivo build.gradle, y fija compileSdkVersion y targetSdkVersion en 23 o un valor inferior. Tendrás que habilitar el conjunto de herramientas Jack para usar estas funciones de Java 8.

Además, están disponibles las siguientes API del lenguaje Java 8:

Habilitar funciones de Java 8 y el conjunto de herramientas Jack

Para usar las nuevas funciones del lenguaje Java 8, también debes usar el conjunto de herramientas Jack. Este nuevo conjunto de herramientas de Android permite compilar fuentes del lenguaje Java en código de bytes DEX legible a través de Android, tiene su propio formato de biblioteca .jack y proporciona la mayoría de las funciones de conjunto de herramientas como parte de una única herramienta: reempaquetado, reducción, alteración y MultiDex.

A continuación, se muestra una comparación de los dos conjuntos de herramientas empleados para compilar archivos DEX de Android:

Configurar Gradle

Si deseas habilitar las funciones del lenguaje Java 8 y Jack para tu proyecto, escribe lo siguiente en tu archivo de nivel de módulo build.gradle:

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Problemas conocidos

Actualmente, Instant Run no funciona con Jack y permanecerá inhabilitado cuando se use el nuevo conjunto de herramientas.

Debido a que Jack no genera archivos de clase intermedia al compilar una app, las herramientas que dependen de estos archivos actualmente no funcionan con Jack. Algunos ejemplos de estas herramientas:

Si experimentas otros problemas al usar Jack, notifica un error.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.