Est-il possible D'utiliser Java 8 pour le développement Android?
recherche sur le web, il n'est pas clair si Java 8 est pris en charge pour le développement Android ou non.
avant de télécharger / configurer Java 8, peut-on me pointer vers n'importe quelle documentation "officielle" qui dit que Java 8 est ou n'est pas supporté pour le développement Android.
21 réponses
java 8
Android prend en charge toutes les fonctionnalités Java 7 langue et un sous-ensemble de fonctionnalités Java 8 langue qui varient selon la version de la plate-forme.
pour vérifier quelles fonctionnalités de java 8 sont supportées
Utilisation de Java 8 fonctionnalités de langage
nous avons décidé d'ajouter la prise en charge des fonctionnalités de langage Java 8 directement dans l'ensemble actuel d'outils javac et dx, et déprécier la Jack de la chaîne. Avec cette nouvelle orientation, les outils et plugins existants qui dépendent du format de fichier Java class devraient continuer à fonctionner. À L'avenir, les fonctionnalités du langage Java 8 seront nativement supportées par le système de construction Android. Nous avons l'intention de le lancer dans le cadre D'Android Studio dans les semaines à venir, et nous avons voulu partager cette décision tôt avec vous.
l'Avenir de Java 8 Langue prise en charge de fonctionnalités sur Android
Utilisateurs D'Eclipse:
pour les anciens développeurs qui préfèrent Eclipse, google s'arrête soutien Eclipse outils de développement Android
si vous avez installé Java 8 JDK, puis lui donner un essai, si un problème apparaît essayer de définir le compilateur comme 1.6 dans Eclipse à partir du menu de fenêtre → Préférences → Java → compilateur . Java 7 fonctionnera aussi:
Java 7 ou plus est nécessaire si vous ciblez Android 5.0 et supérieur.
installer plusieurs JDK et essayer.
mise à jour 2017/11/04 - Android Studio 3.0 a maintenant un support natif pour Java 8. gradle-retrolambda
n'est plus nécessaire. Voir https://developer.android.com/studio/write/java8-support.html
le lien ci-dessus inclut également les instructions de migration si vous utilisez gradle-retrolambda
. Réponse originale ci-dessous:
Android ne supporte pas Java 8. Il ne prend en charge que Jusqu'à Java 7 (si vous avez kitkat) et pourtant il n'a pas invokedynamic, seulement le nouveau sucre de syntaxe.
si vous voulez utiliser lambdas, l'une des principales fonctionnalités de Java 8 sur Android, vous pouvez utiliser gradle-retrolamba . C'est une dépendance de construction de Grad qui intègre retrolambda, un outil qui convertit Java 8 bytecode en Java 6/7. En gros, si vous définissez le compilateur dans Android Studio pour compiler Java 8 bytecode, permettant ainsi à lambdas, il le convertira de nouveau en Java 6/7 bytecode qui à son tour est converti en bytecode dalvik. C'est un hack pour si vous voulez essayer quelques fonctionnalités JDK 8 Dans Android au lieu de support officiel.
vous pouvez en effet utiliser gradle-retrolamba
gradle build dependency pour utiliser Java 8 pour le développement Android.
ci-dessous est le guide complet que j'ai récemment suivi pour exécuter des expressions lambda pour le développement Android. La source originale de ce guide est mentionnée à la fin.
dans ce guide, une méthode pour introduire quelques fonctionnalités Java 8 dans Les outils de développement Android seront démontré, visant spécifiquement les Eclipse IDE . Cependant, les étapes qui seront décrites tout au long de ce guide pourraient également être adaptés au nouveau développement de soulèvement de Google environnement, Android Studio. Il est basé sur l'édition communautaire de idée populaire IntelliJ de JetBrains et il a été récemment mis à jour à sa version "bêta" par Google début juillet 2014, légèrement avant de ce guide a été écrit. Eclipse restera comme le proéminent développement l'environnement, au moins pour un temps, et compte tenu de la le fait que la plupart des projets Android ont été développés en utilisant Eclipse, méthode pour introduire de nouvelles fonctionnalités Java 8 comme les expressions lambda dans ADT semble être très utile pour les développeurs.
développement Android est basé sur une application Java personnalisé appelé Apache Harmony Project qui a pris fin en 2011. La plupart des la syntaxe Java couramment utilisée dans le développement Android est Java 6 (v1.6) et Java 7 (v1.7) est également partiellement pris en charge sur L'édition KitKat (Android 4.4.+). Par conséquent, les fonctionnalités de Java 8 comme les expressions lambda ne peut pas être utilisé directement dans le développement de L'application Android sans l'application de quelques améliorations dans les outils de développement. Heureusement, ces les constructions sont essentiellement certains " sucre syntaxique améliorations qui donner aux développeurs les défauts de choses comme des " classes anonymes’ et ils peuvent être traduits en classe Java 6 ou Java 7.
A approche récente pour traduire un code source Java 8 en Java inférieur les versions sont appelées RetroLambda . Cette bibliothèque fait tourner les développeurs Code Java 8 avec des expressions lambda sur Java 7 ou même plus bas. Malheureusement, les fonctionnalités de Java 8 autres que les expressions lambda ne sont pas soutenu par RetroLambda pour l'instant mais le concept d'expressions lambda est le plus grand bond sur la plate-forme Java 8 et il est un excellent outil pour Développeurs Android de toute façon.
des détails sur cette bibliothèque peuvent être trouvés sur sa page GitHub:
https://github.com/orfjackal/retrolambda#getting-started
aussi, un plugin Gradle pour RetroLambda créé par un autre développeur permet d'implémenter des constructions basées sur Gradle en Java ou Android Projet. Cependant, le développeur ne mentionne que l'intégration de cette plugin dans L'environnement Android Studio. Les détails peuvent être trouvés sur son GitHub page:
https://github.com/evant/gradle-retrolambda
utilisant ces infrastructures dans le cadre d'un développement basé sur Eclipse l'environnement ne peut pas être abordé directement, mais c'est faisable et sera démontré tout au long de ce guide.
préparation
ce guide suppose que le lecteur a compréhension de base du développement Android et il est basé sur la version 22.6.2 de L'ADT parce que la version 23.0.2 récente de L'ADT semble avoir des problèmes comme la création de dossier de mise en page. Pour plus de détails sur cette question, veuillez consulter le lien suivant:
http://code.google.com/p/android/issues/detail?id=72591
étapes dans ce guide sera donné pour une Windows 8.1, 64-bit machine de développement, mais ils peut facilement être adapté à d'autres plates-formes. Le nouveau système de construction Gradle
sera utilisé pour les processus de construction/nettoyage et sa procédure d'installation sera également fournie. En outre, JDK 8
et JDK 7
doivent coexister sur la machine de développement. Les étapes ci-dessous doivent être suivies pour les installer:
- Aller à la JDK 8 accès anticipé à la page d'aperçu http://jdk8.java.net
- télécharger JDK 8u20 et l'installer. L'installation JRE 8 n'est pas nécessaire et peut être ignorée
- aller à la dernière version stable de JDK 7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
- télécharger JDK 7u65 et l'installer. L'installation JRE 7 n'est pas non plus nécessaire et peut être ignorée
- ajouter le dossier d'accueil JDK 8 et le dossier JDK 8
bin
à votre variable%PATH%
- créer une nouvelle variable d'environnement
JAVA_HOME
avec la valeur du chemin du dossier d'accueil JDK 8 - créer une nouvelle variable d'environnement
JAVA8_HOME
encore une fois avec la valeur du chemin du dossier d'accueil JDK 8 - créer une nouvelle variable d'environnement
JAVA7_HOME
avec la valeur du chemin du dossier d'accueil JDK 7 - ouvrez une fenêtre de terminal et lancez la commande
java -version
et vérifiez que Java 8 est activé. et en cours d'exécution - exécuter" la commande 1519100920 "dans la même fenêtre et vérifier que le compilateur Java JDK 8 est aussi en marche
maintenant, ADT-22.6.2 doit être téléchargé à partir du lien suivant:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
- télécharger ADT et décompresser son contenu dans un dossier, p.ex.
D:\adt
- définissez une nouvelle variable d'environnement appelée
ANDROID_HOME
avec la valeur du chemin de votre dossier d'installation ADT, par exempleD:\adt\sdk
- ajoutez votre
Andoid SDK Platform Tools
etAndoid SDK Tools
dossiers, par exempleD:\adt\sdk\tools
etD:\adt\sdk\platform-tools
, à votre%PATH%
variable - créer un raccourci pour éclipser IDE si vous voulez. Il est situé sous votre dossier d'installation ADT, par exemple
D:\adt\eclipse
- exécuter Eclipse IDE et créer un espace de travail, p.ex.
D:\adt\workspace
- cliquez sur le bouton
Android SDK Manager
qui se trouve sur la barre d'outils - sélectionner
Android SDK Build tools Rev. 19.1
etAndroid Support Library
seulement. Désélectionnez tout le reste et installez ces deux paquets.
si tout se passe bien, ADT sera opérationnel.
L'installation des outils suivants est également fortement recommandé:
-
prise en charge de Java 8 par Eclipse Kepler: cela permet à Eclipse de reconnaître de nouvelles extensions de syntaxe Java 8 et vous fait vous débarrasser de la fâcheuse
red dots
dans votre éditeur de code Java. Il pourrait être installé parHelp -> Install New Software
dans Eclipse. Entrer http://download.eclipse.org/eclipse/updates/4.3-P-builds/ dans le champWork with
et continuer à l'installer. -
Nodeclipse/Enide Gradle: il est principalement utilisé pour mettre en évidence les mots clés Groovy language. Groovy est utilisé comme DSL pour les scripts de construction Gradle. Ce plugin peut être installé via
Eclipse Marketplace
. Cependant, Eclipse dans ADT-22.6.2 ne vient pas avecEclipse Marketplace Client
. Par conséquent, vous aurez d'abord besoin d'installerEclipse Marketplace Client
au moyen deInstall New Software
outil dans Eclipse. Entrez http//: download.eclipse.org/mpc/ kepler / dans le champWork with
et continuer à l'installer. Après avoir installéEclipse Marketplace Client
, vous pouvez rechercherNodeclipse/Enide Gradle
dans leEclipse Marketplace Client
et l'installer. -
Genymotion Virtual Device: il s'agit d'un grand remplacement de la valeur par défaut
Android Virtual Device
qui accompagne ADT. AVD est ennuyeux et encombrant et il continue à s'écraser sans raison. Genymotion vous fait préparer Android VD en utilisantCyanogenMod
images qui sont exécutées par Oracle VirtualBox . Son seul la licence utilisateur est gratuite et peut être téléchargée à partir de http://www.genymotion.com . Seul un login est requis et il peut également être intégré dans Eclipse. Les détails peuvent être trouvés sous:
https://cloud.genymotion.com/page/doc/#collapse8
ci-dessous est une capture d'écran D'un appareil virtuel CyanogenMod basé sur Android 4.3,
il pourrait être considéré comme un appareil Android entièrement fledge fonctionnant sur un ordinateur personnel x86 ou x64 basé. Afin d'utiliser des services Google comme Google PlayStore
sur cet appareil virtuel, une image gapps
pour la version Android qu'il utilise doit être affichée sur l'appareil. Une image gapps
de L'appareil peut être téléchargée à partir du site Web de CyanogenMod:
http://wiki.cyanogenmod.org/w/Google_Apps
installation Gradle est facultatif car il est également fourni par Android SDK lui-même, mais son installation séparée est fortement recommandé. L'Installation peut être réalisée en suivant ces étapes:
-
Aller à Gradle site web: http://www.gradle.org/
-
, Cliquez sur
Downloads
- sous
Previous Releases
choisissez la version 1.10 et téléchargez gradle-1.10-all.zip ou Grad-1.10-bin.zip - décompresser son contenu dans un dossier, p.ex.
D:\adt\gradle
- définissez une nouvelle variable d'environnement appelée
GRADLE_HOME
avec la valeur du chemin de votre dossier d'installation Grad, par exempleD:\adt\gradle
- ajoutez votre dossier binaires Gradle, par exemple
D:\adt\gradle\bin
, à votre variable%PATH%
- ouvrez une fenêtre de terminal et lancez la commande
gradle -v
et vérifiez qu'elle est en marche Si vous avez atteint ce point avec succès, cela signifie que vous êtes prêt à créer votre première application Android en utilisant les fonctionnalités Java 8.
Demo App
une application simple sera créée pour démontrer l'utilisation des outils qui ont été décrits dans la section précédente. Vous pouvez simplement suivez les étapes ci-dessous pour obtenir un aperçu sur l'utilisation des expressions lambda dans les outils de développement Android:
- Lancez Eclipse IDE et créez une nouvelle application Android en sélectionnant
File -> New -> Other -> Android -> Android Application Project
- remplir le formulaire qui apparaît comme suit:
- cliquez simplement sur le bouton
Next
sur les formulaires suivants et cliquez sur leFinish
bouton sur le dernier. Attendre JUSQU'à ce que ADT termine le chargement du projet - faites un clic droit sur le projet et sélectionnez
New -> Folder
et nommez-lebuilders
- faites un clic droit sur le dossier
gen (Generated Java Files)
et supprimez-le. Gradle va générer les mêmes fichiers pour nous bientôt et nous allons les ajouter dans le dossiers build path. The
gen` créé par le constructeur de fourmis par défaut n'est plus nécessaire et les artefacts sous ce dossier seront obsolètes -
créer les fichiers par lots suivants sous le dossier
builders
:- gradle_build.cmd
- gradle_post_build.cmd
- gradle_clean.cmd
-
remplissez ces fichiers par lots comme suit:
gradle_build.cmd:
gradle_post_build.cmd:
gradle_clean.cmd:
- de l'Onu-sélectionnez
Project -> Build Automatically
option de menu - faites un clic droit sur le projet et sélectionnez
Properties -> Builders
et désélectionner tous les constructeurs par défaut fournis par ADT - cliquez sur le bouton
New
dans la même fenêtre et sélectionnezProgram
et cliquez surOK
La fenêtre de configuration - New builder apparaîtra. Remplir ses onglets comme suit:
Main
onglet de la Configuration du nouveau constructeur
Refresh
onglet de la Configuration du nouveau constructeur
Environment
onglet de la Configuration du nouveau constructeur
Build Options
onglet de la Configuration du nouveau constructeur
- créer le deuxième constructeur appelé
Gradle_Post_Build
qui utilisegradle_post_build.cmd
comme son programme. Tous les autres paramètres de ce constructeur doivent être exactement les mêmes avec le constructeur précédemment créé. Ce constructeur sera responsable de copier les artéfacts créés par le processus de compilation dans le dossierbin
. - crée le troisième constructeur appelé
Gradle_Cleaner
qui utilisegradle_clean.cmd
comme programme. SeulementRun the builder
dans l'onglet final doit être défini commeDuring a Clean
. Tous les autres paramètres de ce constructeur doivent être exactement les mêmes avec le premier constructeur. Ce constructeur sera responsable du nettoyage des artéfacts créés par le processus de construction comme son nom l'indique.
Nouveaux Constructeurs du HelloLambda
projet
- Droit-cliquez sur le projet et sélectionnez
Export
- sélectionnez
Android -> Generate Gradle Build Files
et cliquez surNext
- Sélectionnez le projet dans la fenêtre suivante et cliquez sur
Finish
- allez dans le dossier racine de votre projet et supprimez les fichiers
gradlew
etgradlew.bat
. Supprimer égalementgradle
dossier - revenez à Eclipse et sélectionnez l'option de menu
Project -> Clean
. Remplissez le formulaire qui s'affiche comme suit:
Clean Project
fenêtre
- , Cliquez sur
OK
et d'attendre que le processus de nettoyage est terminée - ajouter l'extrait de code Java donné ci-dessous juste après l'appel à
setContentView
fonction dans votreMainActivity
classe:
- modifier le début du fichier
build.gradle
jusqu'à la sectionsourceCompatibility
comme suit:
- faites un clic droit sur le projet et sélectionnez l'option
Properties -> Java Compiler
et réglez tous les niveaux de conformité à Java 8. Cela permettra à Eclipse de reconnaître les nouvelles constructions Java 8 comme les expressions lambda. - cliquez
No
dans la fenêtre de notification - faites un clic droit sur le projet et sélectionnez
Build project
. Eclipse va commencer à construire le projet.
Processus De Construction
-
faites un clic droit sur le projet et passez à
Properties -> Java Build Path
. Ajouter les dossiers suivants au chemin de compilation (également indiqué dans l'image ci-dessous):-
build\source\buildConfig\debug
-
build\source\r\debug
-
Eclipse sera désormais capable de reconnaître les fichiers R.java
et buildConfig.java
et il n'affichera pas de red dots
qui dénote des erreurs liées aux fichiers ressources du projet.
- Créer un nouveau
Run Configuration
pour votre Plateforme Android cible en cliquant avec le bouton droit de la souris sur le projet puis en sélectionnantRun As -> Run Configurations
. Par exemple, cette application de démonstration ressemble à montré ci-dessous sur la VD Genymotion:
HelloLambda Application
vous pouvez observer dans la fenêtre LogCat
que l'extrait de code avec une simple expression lambda fonctionne correctement
Source: utilisation des Expressions Java 8 Lambda dans les outils de développement Android
suivez ce lien pour les nouvelles mises à jour. Utilisation de Java 8 fonctionnalités de langage
Vieille Réponse
Que de Android N "aperçu de la 151920920" version Android de soutien limitée les caractéristiques du Java 8 voir Java 8 Fonctionnalités de Langage
pour commencer À utiliser ces fonctionnalités, vous devez télécharger et configurer Android Studio 2.1 et L'Android n Preview SDK, qui comprend le requis Jack chaîne d'outils et mise à jour Plugin Android pour Gradle. Si vous n'ont pas encore installé le SDK Android n Preview, voir mis en place pour développer pour Android N .
prise en charge de Java 8 Fonctionnalités de Langage et Api
Android ne prend pas actuellement en charge toutes les fonctionnalités de langue Java 8. Cependant, les fonctionnalités suivantes sont maintenant disponibles pour le développement d'applications cibler L'Android n Preview:
par Défaut, et statique de l'interface des méthodes
Lambda expressions (également disponible sur API niveau 23 et inférieur)
références de méthode (également disponible sur API niveau 23 et inférieur)
Il ya quelques fonctionnalités Java 8 supplémentaires qui prennent en charge Android, vous pouvez voir tous les détails de Java 8 Caractéristiques de langue
mise à Jour
Note: L'Android n Base sa mise en œuvre des expressions lambda sur anonyme classes. Cette approche permet de pour être en arrière compatible et exécutable sur les versions précédentes D'Android. Tester expressions lambda sur les versions précédentes, n'oubliez pas d'aller à votre construire.classez le fichier et définissez compileSdkVersion et targetSdkVersion à 23 ou moins.
Update 2
maintenant Android studio 3.0 stable release support bibliothèques Java 8 et Java 8 langage features (sans le compilateur Jack).
Android utilise un Java qui se ramifie de Java 6.
à partir de la version 19 D'Android SDK, vous pouvez utiliser les fonctionnalités de Java 7 en faisant ce . Pas de support complet pour Java 8 (encore).
Oui, Android Supporte Java 8 Maintenant (24.1.17)
maintenant il est possible
mais vous aurez besoin de faire tourner votre périphérique rom sur java 1.8 et activer" jackOptions " pour l'exécuter. Jack est le nom du nouveau compilateur Android qui exécute Java 8
https://developer.android.com/guide/platform/j8-jack.html
ajouter ces lignes à build_gradle
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Java 8 semble être l'exécution de moteur java d'Android studio 2.0, Mais il n'accepte toujours pas la syntaxe de java 8 après que j'ai vérifié, et vous ne pouvez pas choisir un compilateur d'android studio maintenant. Cependant, vous pouvez utiliser le plugin scala si vous avez besoin d'un mécanisme de programmation fonctionnel dans votre client android.
Android prend officiellement en charge Java 8 depuis Android N.
Feature announcements are here , L'annonce en langage Java 8 est:
amélioration du support de langage Java 8 - nous sommes enthousiastes à l'idée d'apporter les fonctionnalités de langage Java 8 à Android. Avec le compilateur Jack D'Android, vous pouvez utilisez maintenant de nombreuses fonctionnalités de langage Java 8 populaires, y compris lambdas et plus, sur les versions Android aussi loin de retour comme le pain d'épices. Nouveauté aide à réduire le code boilerplate. Par exemple, lambdas peut remplacer classes internes anonymes lors de la fourniture d'écouteurs d'événements. Certains Java 8 les fonctionnalités de langue --comme les méthodes par défaut et statiques, les flux, et interfaces fonctionnelles -- sont également disponibles sur N et au-dessus. Avec Jack, nous sommes impatients de suivre le langage Java de plus près. tout en maintenant la compatibilité descendante.
Java 8 natif arrive sur android! Enfin!!!
supprimer le plugin Retrolambda et le bloc retrolambda de chaque module construire.gradle fichier:
pour désactiver le Jack et passer à la chaîne d'outils par défaut, il suffit de supprimer le jackOptions bloque la construction de votre module.dossier gradle
pour commencer à utiliser les fonctionnalités Java 8, mettez à jour le plugin Android à 3.0.0 (ou plus haut) )
à partir de Android Studio 3.0, les fonctionnalités de langage Java 8 sont désormais nativement pris en charge par android:
- les expressions Lambda
- références de méthode
- annotations de Type (actuellement, l'information sur les annotations de type n'est pas disponible à l'exécution, mais seulement à la compilation);
- Répétition annotations
- méthodes par défaut et d'interface statique (sur API niveau 24 ou plus, pas de prise en charge immédiate de l'exécution tho);
également de min API Niveau 24 les API Java 8 suivantes sont disponibles:
- de java.util.stream
- de java.util.fonction
- de java.lang.Interface fonctionnelle
- de java.lang.annotation.Répétable
- de java.lang.refléter.AnnotatedElement.getAnnotationsByType (Class)
- de java.lang.refléter.Méthode.isDefault ()
ajoutez ces lignes à la construction de votre module d'application.gradle pour orienter le projet du niveau de la langue:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
désactivez le Support pour les fonctionnalités de langage Java 8 en ajoutant ce qui suit à votre Grad .propriétés fichier:
android.enableDesugar=false
C'est fini! Vous pouvez maintenant utiliser java8 natif!
nous pouvons utiliser Java 8 en utilisant:
-
Dans la construction.Grad le (projet: myProject) ajouter le texte suivant:
classpath 'me.tatarka:gradle-retrolambda:x.x.x' //x.x.x is recent version
-
Dans la construction.Grad le (Module: myModule) ajouter
apply plugin: 'me.tatarka.retrolambda' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
Android Studio 3.0 a commencé à fournir la prise en charge intégrée pour certaines des fonctionnalités de langue Java 8, qui sont:
- les expressions Lambda
- références de méthode
- Type Annotations (information disponible au moment de la compilation, mais pas à l'exécution)
- Répétition annotations
- par Défaut, et statique de l'interface des méthodes
aussi à partir du niveau API 24, les API Java 8 suivantes sont disponibles:
-
java.util.stream
-
java.util.function
-
java.lang.FunctionalInterface
-
java.lang.annotation.Repeatable
-
java.lang.reflect.AnnotatedElement.getAnnotationsByType(Class)
-
java.lang.reflect.Method.isDefault()
de plus, le support try-with-resources
a été étendu à tous les niveaux D'API Android.
Plus De Java 8 des fonctionnalités sont promises d'être ajoutées à l'avenir.
pour commencer à utiliser les fonctionnalités Java 8 Langue Prise en charge, mettre à jour L'Android plugin à 3.0.0-alpha1 (ou supérieur) et ajouter ce qui suit à votre construction du module.dossier gradle:
android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
pour plus de détails visitez:
https://developer.android.com/studio/write/java8-support.html
quand j'ai posé cette question il y a presque 2 ans, la réponse était vraiment "officiellement" non, mais comme le souligne la réponse d'ekcr1, vous pouvez obtenir l'une des caractéristiques les plus attendues (lambdas) à travailler si vous utilisez retrolamba. À l'époque, j'utilisais encore eclipse, comme Android Studio était en mode "preview", donc je n'ai jamais poursuivi ce chemin.
Aujourd'hui, je pense que la réponse "officielle" est toujours non, et bien que retrolamba semble toujours être une bonne façon d'aller, Il ya une autre option pour ceux qui sont prêts à suivre une voie un peu "officieuse" peut prendre, à savoir Kotlin.
Aujourd'hui Kotlin atteint 1.0.0. Pour ceux qui ne connaissent pas Kotlin, plus d'informations peuvent être trouvées sur leur site web trouvé ici:
ou regardez cette vidéo utube d'un exposé donné par Jake Wharton
dernières nouvelles:
Google annonce Qu'avec Android N et Android Studio 2.1+, Plate-forme supportera Java 8. La version stable de studio 2.1 est également sortie.
enfin nous pouvons utiliser des expressions lambda. Plus de filtre de liste pour boucle. Horeeey.
ajouter cette construction de configuration.Grad et sync Grad:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// or
//sourceCompatibility 1.8
//targetCompatibility 1.8
}
}
Google vient d'annoncer que Java 8 sera nativement prise en charge par Android et que la chaîne D'outils Jack va déprécier:
nous avons décidé d'ajouter la prise en charge des fonctionnalités du langage Java 8 directement dans le jeu d'outils javac et dx actuel, et de déprécier la chaîne D'outils Jack. Avec cette nouvelle orientation, les outils et plugins existants qui dépendent du format de fichier Java class devraient continuer à fonctionner. Pour l'avenir, les fonctionnalités du langage Java 8 seront pris en charge par le système de construction Android. Nous avons l'intention de le lancer dans le cadre D'Android Studio dans les semaines à venir, et nous avons voulu partager cette décision tôt avec vous.
plus d'informations ici: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
Oui. Nous allons bientôt utiliser Java 8!
nous avons décidé d'ajouter la prise en charge des fonctionnalités du langage Java 8 directement dans le jeu d'outils javac et dx actuel, et de déprécier la chaîne D'outils Jack. Avec cette nouvelle orientation, les outils et plugins existants qui dépendent du format de fichier Java class devraient continuer à fonctionner. À L'avenir, les fonctionnalités du langage Java 8 seront nativement supportées par le système de construction Android. Nous avons l'intention de le lancer dans le cadre D'Android Studio dans les semaines à venir, et nous voulions partager cette décision tôt avec vous.
https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
j'ai écrit une réponse similaire à une question similaire sur le débordement de la pile, mais voici une partie de cette réponse.
Android Studio 2.1:
la nouvelle version D'Android Studio (2.1) prend en charge les fonctionnalités de Java 8. Voici un extrait du Développeurs Android blogspot post :
... La version d'Android Studio 2.1 inclut la prise en charge le nouveau Jack compiler et le support pour Java 8 .
...
pour utiliser les fonctionnalités du langage Java 8 lors du développement avec L'aperçu du développeur N, Vous devez utiliser le compilateur Jack. Le nouvel assistant de projet [Fichier→ Nouveau→ projet] génère les configurations correctes pour les projets ciblant le N.
Avant Android Studio 2.1:
Android ne supporte pas encore Java 1.8 (il supporte seulement jusqu'à 1.7), donc vous ne pouvez pas utiliser les fonctionnalités Java 8 comme lambdas.
cette réponse donne plus de détails sur la compatibilité D'Android Studio ; il déclare:
si vous voulez utiliser lambdas, l'une des principales fonctionnalités de Java 8 sur Android, vous pouvez utiliser gradle-retrolamba
Si vous voulez en savoir plus sur en utilisant gradle-retrolambda
, cette réponse donne beaucoup de détails sur le fait de faire que .
j'ai pensé afficher une réponse mise à jour pour ceux qui cherchent quelque chose d'un peu plus actuel.
actuellement Android et Android Studio prennent en charge un sous-ensemble de fonctionnalités Java 8. Selon la documentation Android situé sur leur site web , Google dit:
la prise en charge des fonctionnalités du langage Java 8 nécessite un nouveau compilateur appelé Jack. Jack n'est pris en charge que sur Android Studio 2.1 et supérieur. Donc, si vous voulez utiliser les fonctionnalités de langage Java 8, Vous devez utiliser Android Studio 2.1 pour construire votre application.
si vous avez déjà Android Studio installé, assurez-vous de mettre à jour vers la dernière version en cliquant sur Aide > Vérifier les mises à jour (sur Mac, Android Studio > vérifier les mises à jour). Si vous n'avez pas déjà installé L'IDE sur votre poste de travail, téléchargez Android Studio ici.
prise en charge de Java 8 Fonctionnalités de Langage et Api
Android ne supporte pas toutes les fonctionnalités de langage Java 8. Toutefois, les fonctionnalités suivantes sont disponibles lors du développement d'applications ciblant Android 7.0 (niveau API 24):
- Default and static interface methods Lambda expressions (également disponible au niveau API 23 et inférieur)
- répétable annotations
- références de méthode (également disponible sur API niveau 23 et inférieur))
- Annotations de Type (également disponible sur l'API de niveau 23 et inférieure)
de plus, les API Java 8 suivantes sont également disponibles:
de Réflexion et de langue Api:
- de java.lang.Interface fonctionnelle
- de java.lang.annotation.Répétable
- Java.lang.refléter.Méthode.IsDefault () et les AP de réflexion associés à des annotations répétables, telles que AnnotatedElement.getAnnotationsByType (Class)
Utilitaire D'Api:
- de java.util.fonction
- de java.util.stream
pour utiliser les nouvelles fonctionnalités de langage Java 8, vous devez également utiliser le Jack toolchain . Cette nouvelle tablette sous Android toolchain compile Java language sources dans Android-readable Dex bytecode, a ses propres .jack library format, et fournit la plupart des fonctionnalités de la chaîne d'outils dans le cadre d'un seul outil: reconditionnement, rétrécissement, obfuscation et multidex.
voici une comparaison des deux chaînes d'outils utilisés pour construire des fichiers Android DEX:
Legacy javac toolchain: javac (.java → .class) → dx (.class → .dex) New Jack toolchain: Jack (.java → .jack → .dex)
j'ai posé cette question il y a plus de 3 ans et évidemment les réponses ont changé au fil des ans. Comme beaucoup ci-dessus ont déjà répondu, depuis quelque temps, la réponse est devenue Oui . Je n'ai jamais mis à jour la accepté de répondre parce que c'était la bonne réponse à l'époque. (Je ne suis pas sûr de ce que le Débordement de la Pile de la politique est sur que)
je voulais juste ajouter une autre réponse pour ceux qui cherchent encore ce sujet. À partir de 5/17/2017 Google aussi annoncé que Kotlin est également un officiel langue pour le développement Android.
Je n'ai pas trouvé de communiqué de presse officiel, mais j'ai regardé quelques-uns des I/O vidéos où il a été annoncé. Voici un lien vers un blog post par le Kotlin de l'équipe sur l'annonce.
ajouter ce qui suit a corrigé le problème pour moi (Android studio 2.3.2):
"151950920 de construire".Grad le (projet)
buildscript {
repositories {
...
jcenter()
}
dependencies {
...
classpath 'me.tatarka:gradle-retrolambda:3.4.0' // DEPENDENCY
...
}
}
"151950920 de construire".Grad (Module: app)
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda' //PLUGIN
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
} // SET JAVA VERSION
...
}
un sous-ensemble de Java 8 est maintenant pris en charge sur Android Studio. Il suffit de faire les ajustements de compatibilité Source et cible à partir de la fenêtre ci-dessous:
Fichier --> Structure De Projet
Plus d'informations dans le lien ci-dessous.
https://developer.android.com/studio/write/java8-support.html
voie la plus facile
vous pouvez activer le support java 1.8 Pour android project.
-
Structure Ouverte Du Projet
-
soit en appuyant sur Ctrl + Shift + Alt + S
-
ou
File > Project Structure
-
-
mise à Jour de la compatibilité Source et compatibilité cible à 1.8 dans la boîte de dialogue structure du projet comme indiqué (cliquer fichier > Structure du projet).
Note: Java 1.8 le support peut être activé pour Android Studio 3.0.0 ou plus. Voir Documentation pour plus de lecture.