Android Studio con Java 8

Android Studio con Java 8

Desde la versión 3.0 (y posteriores) Android Studio admite todas las funciones del lenguaje Java 7 además de un subconjunto de funciones de Java 8 que varía según la versión de la plataforma (hay que tener en cuenta que, aunque el uso de Java 8 es opcional, para la compilación de aplicaciones con Java 7 se debe usar JDK 8).

Android Studio proporciona compatibilidad integrada para el uso de ciertas funcionalidades de Java 8 y de bibliotecas de terceros que las necesitan, pero para poder usar Java 8 debemos configurar correctamente nuestro proyecto en Android Studio. Además, como ya hemos visto en entradas anteriores, si intentamos usar algunas características de Java 8 sin esta configuración podemos encontrarnos con un error parecido a 'Error Default interface methods are only supported starting with Android N...'

Para poder lograr la compatibilidad con Java 8 con el conjunto de herramientas predeterminadas de Android Studio debemos seguir estos tres pasos:

PRIMERO

Lo primero es, si fuera el caso, inhabilitar Jack, que es un conjunto de herramientas que ha quedado obsoleto. Esta advertencia es solo para aquellos proyectos más antiguos que dependen de Jack y que deben realizar esta migración para usar la compatibilidad con Java 8. Para inhabilitar Jack simplemente hay que quitar, en caso de existir, el bloque jackOptions{} en el archivo build.gradle del módulo.

SEGUNDO

Actualizar el complemento Gradle de Android (Android Gradle plugin) al menos a la versión 3.0.0 (o versiones posteriores). Podemos especificar la versión de este complemento para todos los módulos integrados en un proyecto de Android Studio desde File > Project Structure > Project:



Y también en el archivo build.gradle del proyecto:
buildscript {
    ext.kotlin_version = '1.3.21'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.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
    }
}
Hay que tener en cuenta dos cosas: 1) que cada versión del complemento Android Gradle requiere una versión de Gradle, por lo que si actualizas el complemento posiblemente debas actualizar también Gradle (en ese caso Android Studio lanzará un mensaje de actualización), y 2) que para obtener el mejor rendimiento se debe usar la última versión posible de ambos.



TERCERO

Y por último, para cada módulo que use Java 8 (ya sea en su código fuente o a través de dependencias), debemos especificar la compatibilidad de origen y destino agregando lo siguiente a su archivo build.gradle, dentro del bloque android:
android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Comentarios

Entradas populares

Recursos gratis para aprender Kotlin

I/O: entrada y salida de datos en consola

Lectura y escritura de archivos