¿Es posible utilizar Java 8 para el desarrollo de Android?
Al buscar en la web, no está claro si Java 8 es compatible con el desarrollo de Android o no.
Antes de descargar/configurar Java 8, ¿alguien puede indicarme alguna documentación "oficial" que diga que Java 8 es o no compatible con el desarrollo de Android?
ACTUALIZACIÓN 04/11/2017: Android Studio 3.0 ahora tiene soporte nativo para Java 8. gradle-retrolambda
Ahora ya no es necesario. Consulte https://developer.android.com/studio/write/java8-support.html
El enlace anterior también incluye instrucciones de migración si está utilizando gradle-retrolambda
. Respuesta original a continuación:
Android no es compatible con Java 8. Solo admite hasta Java 7 (si tiene kitkat) y aún no tiene invokedynamic, solo la nueva sintaxis sugar.
Si desea utilizar lambdas, una de las funciones principales de Java 8 en Android, puede utilizar gradle-retrolamba . Es una dependencia de compilación de Gradle que integra retrolambda, una herramienta que convierte el código de bytes de Java 8 a Java 6/7. Básicamente, si configura el compilador en Android Studio para compilar el código de bytes de Java 8, permitiendo así lambdas, lo convertirá nuevamente al código de bytes de Java 6/7, que luego a su vez se convierte al código de bytes de Dalvik. Es un truco si quieres probar algunas funciones de JDK 8 en Android en lugar del soporte oficial.
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.
Para comprobar qué funciones de Java 8 son compatibles
Utilice las funciones del lenguaje Java 8
Hemos decidido agregar soporte para las características del lenguaje Java 8 directamente al conjunto de herramientas javac y dx actual, y dejar de usar la cadena de herramientas Jack. Con esta nueva dirección, las herramientas y complementos existentes que dependen del formato de archivo de clase Java deberían seguir funcionando. En el futuro, las funciones del lenguaje Java 8 serán compatibles de forma nativa con el sistema de compilación de Android. Nuestro objetivo es lanzar esto como parte de Android Studio en las próximas semanas y queríamos compartir esta decisión con ustedes desde el principio.
Futuro del soporte de funciones del lenguaje Java 8 en Android
Usuarios de Eclipse:
Para los desarrolladores antiguos que prefieren Eclipse, Google deja de admitir las herramientas para desarrolladores de Android Eclipse.
Si instaló Java 8 JDK, pruébelo; si aparece algún problema, intente configurar el compilador como 1.6 en Eclipse desde el menú de la ventana → Preferencias → Java → Compilador . Java 7 también funcionará:
Se requiere Java 7 o superior si su objetivo es Android 5.0 y superior.
Instale varios JDK y pruébelo.