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.

543
demandé sur Enzokie 2014-04-27 04:40:43

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:

Eclipse Preferences - Java - Compiler

Java 7 ou plus est nécessaire si vous ciblez Android 5.0 et supérieur.

installer plusieurs JDK et essayer.

164
répondu Eng. Samer T 2017-06-21 22:22:01

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.

334
répondu ekcr1 2017-11-03 22:30:29

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 exemple D:\adt\sdk
  • ajoutez votre Andoid SDK Platform Tools et Andoid SDK Tools dossiers, par exemple D:\adt\sdk\tools et D:\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 et Android 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é par Help -> Install New Software dans Eclipse. Entrer http://download.eclipse.org/eclipse/updates/4.3-P-builds/ dans le champ Work 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 avec Eclipse Marketplace Client . Par conséquent, vous aurez d'abord besoin d'installer Eclipse Marketplace Client au moyen de Install New Software outil dans Eclipse. Entrez http//: download.eclipse.org/mpc/ kepler / dans le champ Work with et continuer à l'installer. Après avoir installé Eclipse Marketplace Client , vous pouvez rechercher Nodeclipse/Enide Gradle dans le Eclipse 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 utilisant CyanogenMod 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,

enter image description here

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 exemple D:\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:

enter image description here

  • cliquez simplement sur le bouton Next sur les formulaires suivants et cliquez sur le Finish 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-le builders
  • 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 dossier s 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:

enter image description here

gradle_post_build.cmd:

enter image description here

gradle_clean.cmd:

enter image description here

  • 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électionnez Program et cliquez sur OK
  • La fenêtre de configuration
  • New builder apparaîtra. Remplir ses onglets comme suit:

Main onglet de la Configuration du nouveau constructeur

enter image description here

Refresh onglet de la Configuration du nouveau constructeur

enter image description here

Environment onglet de la Configuration du nouveau constructeur

enter image description here

Build Options onglet de la Configuration du nouveau constructeur

enter image description here

  • créer le deuxième constructeur appelé Gradle_Post_Build qui utilise gradle_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 dossier bin .
  • crée le troisième constructeur appelé Gradle_Cleaner qui utilise gradle_clean.cmd comme programme. Seulement Run the builder dans l'onglet final doit être défini comme During 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

enter image description here

  • Droit-cliquez sur le projet et sélectionnez Export
  • sélectionnez Android -> Generate Gradle Build Files et cliquez sur Next
  • 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 et gradlew.bat . Supprimer également gradle dossier
  • revenez à Eclipse et sélectionnez l'option de menu Project -> Clean . Remplissez le formulaire qui s'affiche comme suit:

Clean Project fenêtre

enter image description here

  • , 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 votre MainActivity classe:

enter image description here

  • modifier le début du fichier build.gradle jusqu'à la section sourceCompatibility comme suit:

enter image description here

  • 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 enter image description here

  • 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

enter image description here

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électionnant Run As -> Run Configurations . Par exemple, cette application de démonstration ressemble à montré ci-dessous sur la VD Genymotion:

HelloLambda Application

enter image description here

vous pouvez observer dans la fenêtre LogCat que l'extrait de code avec une simple expression lambda fonctionne correctement

enter image description here

Source: utilisation des Expressions Java 8 Lambda dans les outils de développement Android

97
répondu Sufiyan Ghori 2015-02-08 12:45:57

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épétitable annotations

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).

42
répondu 2017-10-26 07:17:29

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).

19
répondu chaqke 2016-11-21 23:40:56

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.

enter image description here

18
répondu sivi 2017-01-24 18:37:10

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.

14
répondu Jay 2016-03-10 05:09:54

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!

12
répondu Dhaval Jivani 2017-10-27 04:03:16

nous pouvons utiliser Java 8 en utilisant:

  1. 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
    
  2. Dans la construction.Grad le (Module: myModule) ajouter

    apply plugin: 'me.tatarka.retrolambda'
    
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    
11
répondu Vishal Raj 2016-01-03 12:31:21

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

7
répondu Idolon 2017-07-05 10:52:10

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:

https://kotlinlang.org

ou regardez cette vidéo utube d'un exposé donné par Jake Wharton

https://www.youtube.com/watch?v=A2LukgT2mKc

5
répondu nPn 2016-02-16 00:47:23

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.

4
répondu asozcan 2016-04-27 07:56:38

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
    }
}
4
répondu Ahmad Aghazadeh 2016-09-15 09:59:36

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

2
répondu stamanuel 2017-03-15 07:38:24

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

2
répondu Ajay S 2017-03-16 06:18:33

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 .

1
répondu Farbod Salamat-Zadeh 2017-05-23 11:55:10

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)
1
répondu BlackHatSamurai 2016-12-13 22:12:14

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.

1
répondu nPn 2017-05-18 11:13:26

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
    ...
}
1
répondu Richard 2017-06-02 17:18:35

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

Adjustment Window

Plus d'informations dans le lien ci-dessous.

https://developer.android.com/studio/write/java8-support.html

1
répondu Fio 2018-02-03 21:47:44

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).

image

Note: Java 1.8 le support peut être activé pour Android Studio 3.0.0 ou plus. Voir Documentation pour plus de lecture.

0
répondu Khemraj 2018-09-12 07:59:12