En recherchant 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, quelqu'un peut-il m'indiquer toute documentation "officielle" qui dit que Java 8 est ou n'est pas pris en charge pour le développement Android.
Réponses:
java 8
Android prend en charge toutes les fonctionnalités du langage Java 7 et un sous-ensemble des fonctionnalités du langage Java 8 qui varient selon la version de la plateforme.
Pour vérifier quelles fonctionnalités de java 8 sont prises en charge
Utiliser les fonctionnalités du langage Java 8
L'avenir de la prise en charge des fonctionnalités du langage Java 8 sur Android
Utilisateurs Eclipse:
Pour les anciens développeurs qui préfèrent Eclipse, Google arrête la prise en charge des outils de développement Android Eclipse
si vous avez installé Java 8 JDK, essayez-le, en cas de problème, essayez de définir le compilateur sur 1.6 dans Eclipse à partir du menu de la fenêtre → Préférences → Java → Compilateur . Java 7 fonctionnera aussi:
installez plusieurs JDK et essayez.
la source
MISE À JOUR 2017/11/04 - Android Studio 3.0 prend désormais en charge nativement Java 8.
gradle-retrolambda
n'est plus nécessaire. Voir https://developer.android.com/studio/write/java8-support.htmlLe lien ci-dessus comprend également des instructions de migration si vous utilisez
gradle-retrolambda
. Réponse originale ci-dessous:Android ne prend pas en charge Java 8. Il ne prend en charge que Java 7 (si vous avez kitkat) et il n'a toujours pas invoquéynamic, uniquement le nouveau sucre de syntaxe.
Si vous souhaitez utiliser lambdas, l'une des principales fonctionnalités de Java 8 dans Android, vous pouvez utiliser gradle-retrolamba . C'est une dépendance de construction gradle qui intègre retrolambda, un outil qui reconvertit le bytecode Java 8 en Java 6/7. Fondamentalement, si vous définissez le compilateur dans Android Studio pour compiler le bytecode Java 8, permettant ainsi aux lambdas, il le reconvertira en Java 6/7 bytecode qui sera ensuite à son tour converti en dalvik bytecode. C'est un hack pour si vous voulez essayer certaines fonctionnalités JDK 8 dans Android au lieu du support officiel.
la source
try-with-resources
ne fonctionne que depuis Kitkat.Vous pouvez en effet utiliser la
gradle-retrolamba
dépendance de construction gradle pour utiliser Java 8 pour le développement Android.Vous trouverez ci-dessous 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.
Préparation
Ce guide suppose que le lecteur a une compréhension de base du développement Android et qu'il est basé sur la version 22.6.2 d'ADT car la version récente 23.0.2 d'ADT semble avoir des problèmes comme la création de dossier de disposition. Des détails sur ce problème peuvent être trouvés sous le lien suivant:
http://code.google.com/p/android/issues/detail?id=72591
Les étapes de ce guide seront données pour une machine de développement Windows 8.1, 64 bits , mais elles peuvent facilement être adaptées à 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, à la foisJDK 8
etJDK 7
doivent coexister sur la machine de développement. Les étapes ci-dessous doivent être suivies pour les installer:bin
à votre%PATH%
variableJAVA_HOME
avec la valeur du chemin du dossier de départ JDK 8JAVA8_HOME
avec la valeur du chemin du dossier de base JDK 8JAVA7_HOME
avec la valeur du chemin du dossier de départ JDK 7java -version
commande et vérifiez que Java 8 est opérationneljavac -version
commande dans la même fenêtre et vérifiez que le compilateur Java JDK 8 est également opérationnelMaintenant, 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
D:\adt
ANDROID_HOME
avec la valeur du chemin de votre dossier d'installation ADT, par exempleD:\adt\sdk
Andoid SDK Platform Tools
etAndoid SDK Tools
, par exempleD:\adt\sdk\tools
etD:\adt\sdk\platform-tools
, à votre%PATH%
variableD:\adt\eclipse
D:\adt\workspace
Android SDK Manager
bouton qui se trouve sur la barre d'outilsAndroid SDK Build tools Rev. 19.1
etAndroid Support Library
uniquement. Désélectionnez tout le reste et installez ces deux packages.Si tout se passe bien, ADT sera opérationnel.
L'installation des outils suivants est également fortement recommandée:
Prise en charge Eclipse Kepler Java 8: Cela permet à Eclipse de reconnaître les nouvelles extensions de syntaxe Java 8 et vous évite les ennuis
red dots
dans votre éditeur de code Java. Il peut être installé viaHelp -> Install New Software
Eclipse. Entrez http://download.eclipse.org/eclipse/updates/4.3-P-builds/ dans leWork with
champ et continuez à l'installer.Nodeclipse / Enide Gradle: Il est principalement utilisé pour mettre en évidence les mots clés du langage Groovy. 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 devrez d'abord installerEclipse Marketplace Client
au moyen de l'Install New Software
outil dans Eclipse. Entrez http //: download.eclipse.org/mpc/kepler/ dans leWork with
champ et continuez à l'installer. Après l'installationEclipse Marketplace Client
, vous pouvez rechercherNodeclipse/Enide Gradle
dansEclipse Marketplace Client
et l'installer.Périphérique virtuel Genymotion: c'est un excellent remplacement de la valeur par défaut
Android Virtual Device
fournie avec ADT. AVD est ennuyeusement encombrant et continue de se bloquer sans raison. Genymotion vous fait préparer des VD Android à l'aide d'CyanogenMod
images exécutées par Oracle VirtualBox . Sa licence mono-utilisateur est gratuite et peut être téléchargée sur http://www.genymotion.com . Seule une connexion est requise et elle peut également être intégrée à Eclipse. Les détails peuvent être trouvés sous:https://cloud.genymotion.com/page/doc/#collapse8
Ci-dessous, une capture d'écran d'un appareil virtuel CyanogenMod basé sur Android 4.3,
Il peut être considéré comme un appareil Android à part entière fonctionnant sur un ordinateur personnel x86 ou x64. Afin d'utiliser les services Google comme
Google PlayStore
sur cet appareil virtuel, unegapps
image de la version Android qu'il utilise doit être flashée sur l'appareil. Unegapps
image appropriée de l'appareil peut être téléchargée à partir du site Web de CyanogenMod:http://wiki.cyanogenmod.org/w/Google_Apps
L'installation de Gradle est facultative car elle est également fournie par le SDK Android lui-même, mais son installation séparée est fortement recommandée. L'installation de celui-ci peut être effectuée en suivant ces étapes:
Accédez au site Web de Gradle: http://www.gradle.org/
Cliquez sur
Downloads
Previous Releases
choisissez la version 1.10 et téléchargez soit gradle-1.10-all.zip ou gradle-1.10-bin.zipD:\adt\gradle
GRADLE_HOME
avec la valeur du chemin de votre dossier d'installation Gradle, par exempleD:\adt\gradle
D:\adt\gradle\bin
, à votre%PATH%
variablegradle -v
commande et vérifiez qu'elle est opérationnelle Si vous avez réussi à ce stade, cela signifie que vous êtes prêt à créer votre première application Android à l'aide des fonctionnalités de Java 8.Application de démonstration
Une application simple sera créée pour démontrer l'utilisation des outils décrits dans la section précédente. Vous pouvez simplement suivre les étapes ci-dessous pour obtenir un aperçu de l'utilisation des expressions lambda dans les outils de développement Android:
File -> New -> Other -> Android -> Android Application Project
Next
bouton des formulaires suivants et cliquez sur leFinish
bouton du dernier. Attendez que ADT termine le chargement du projetNew -> Folder
et nommez-lebuilders
gen (Generated Java Files)
dossier et supprimez-le. Gradle va bientôt générer les mêmes fichiers pour nous et nous les ajouterons dans les build path. The
dossier gen du projet créé par le constructeur Ant par défaut n'est plus nécessaire et les artefacts sous ce dossier seront obsolètesCréez les fichiers de commandes suivants sous le
builders
dossier:Remplissez ces fichiers batch comme suit:
gradle_build.cmd:
gradle_post_build.cmd:
gradle_clean.cmd:
Project -> Build Automatically
option de menuProperties -> Builders
et désélectionnez tous les générateurs par défaut fournis par ADTNew
bouton dans la même fenêtre et sélectionnezProgram
et cliquez surOK
Main
Onglet de la nouvelle configuration BuilderRefresh
Onglet de la nouvelle configuration BuilderEnvironment
Onglet de la nouvelle configuration BuilderBuild Options
Onglet de la nouvelle configuration BuilderGradle_Post_Build
qui utilisegradle_post_build.cmd
comme programme. Tous les autres paramètres de ce générateur doivent être exactement les mêmes que ceux du générateur créé précédemment. Ce générateur sera chargé de copier les artefacts créés par le processus de génération dans lebin
dossier.Gradle_Cleaner
qui utilisegradle_clean.cmd
comme programme. Seul leRun the builder
paramètre dans l'onglet final doit être défini commeDuring a Clean
. Tous les autres paramètres de ce générateur doivent être exactement les mêmes que ceux du premier générateur. Ce constructeur sera responsable du nettoyage des artefacts créés par le processus de construction comme son nom l'indique.Nouveaux constructeurs du
HelloLambda
projetExport
Android -> Generate Gradle Build Files
et cliquezNext
Finish
gradlew
etgradlew.bat
. Supprimer également legradle
dossierProject -> Clean
option de menu. Remplissez le formulaire qui apparaît comme suit:Clean Project
FenêtreOK
et attendez la fin du processus de nettoyagesetContentView
fonctionner dans votreMainActivity
classe:build.gradle
fichier jusqu'à lasourceCompatibility
section comme suit:Properties -> Java Compiler
option et définissez tous les niveaux de conformité sur Java 8. Cela permettra à Eclipse de reconnaître les nouvelles constructions Java 8 comme les expressions lambda.No
dans la fenêtre de notificationBuild project
. Eclipse commencera à construire le projet.Processus de construction
Faites un clic droit sur le projet et allez à
Properties -> Java Build Path
. Ajoutez les dossiers suivants au chemin de génération (également illustré dans l'image ci-dessous):build\source\buildConfig\debug
build\source\r\debug
Eclipse sera désormais en mesure de reconnaître
R.java
et debuildConfig.java
fichiers et il n'affichera aucunred dots
qui dénote des erreurs liées aux fichiers de ressources du projet.Run Configuration
pour votre plate-forme cible Android en cliquant avec le bouton droit sur le projet, puis en le sélectionnantRun As -> Run Configurations
. Par exemple, cette application de démonstration ressemble à celle illustrée ci-dessous sur le Genymotion VD:Application HelloLambda
Vous pouvez observer dans la
LogCat
fenêtre que l'extrait de code avec une simple expression lambda fonctionne correctementSource: Utilisation de Java 8 Lambda Expressions dans les outils de développement Android
la source
Suivez ce lien pour les nouvelles mises à jour. Utiliser les fonctionnalités du langage Java 8
Ancienne réponse
Depuis la version d' aperçu d' Android N, Android prend en charge les fonctionnalités limitées de Java 8, voir Fonctionnalités du langage Java 8
Fonctionnalités et API du langage Java 8 prises en charge
Méthodes d'interface par défaut et statique
Expressions lambda (également disponibles sur les API niveau 23 et inférieurs)
Annotations répétables
Références de méthode (également disponible au niveau API 23 et inférieur)
Il y a quelques fonctionnalités Java 8 supplémentaires prises en charge par Android, vous pouvez voir tous les détails dans Java 8 Language Features
Mise à jour
Update 2
Désormais, la version stable d'Android studio 3.0 prend en charge les bibliothèques Java 8 et les fonctionnalités du langage Java 8 (sans le compilateur Jack).
la source
minSdkVersion
?Oui, Android prend en charge Java 8 maintenant (24.1.17)
Maintenant c'est possible
Mais vous devrez faire fonctionner votre appareil 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
ajoutez ces lignes à build_gradle
Java 8 semble être le moteur java en cours d'exécution d'Android studio 2.0, mais il n'accepte toujours pas la syntaxe de java 8 après vérification, et vous ne pouvez pas choisir un compilateur depuis 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.
la source
Android utilise un Java qui dérive de Java 6.
À partir de la version 19 du SDK Android, vous pouvez utiliser les fonctionnalités de Java 7 en procédant ainsi . Pas encore de support complet pour Java 8.
la source
Java 8 natif arrive sur Android! Finalement!
Pour commencer à utiliser les fonctionnalités du langage Java 8 prises en charge, mettez à jour le plug-in Android vers 3.0.0 (ou supérieur)
À partir d'Android Studio 3.0, les fonctionnalités du langage Java 8 sont désormais prises en charge nativement par Android:
Également à partir du niveau minimal de l'API 24, les API Java 8 suivantes sont disponibles:
Ajoutez ces lignes au build.gradle de votre module d'application pour informer le projet du niveau de langue:
Désactivez la prise en charge des fonctionnalités du langage Java 8 en ajoutant les éléments suivants à votre fichier gradle.properties :
Vous avez terminé! Vous pouvez maintenant utiliser Java8 natif!
la source
Android prend en charge OFFICIELLEMENT Java 8 à partir d'Android N.
Les annonces de fonctionnalités sont ici , l'annonce du langage Java 8 est:
la source
Nous pouvons utiliser Java 8 en utilisant:
Dans build.gradle (Project: myProject), ajoutez ce qui suit
Dans build.gradle (Module: myModule), ajoutez ce qui suit
la source
MISE À JOUR 2020/01/17
Android Studio 4.0 prend en charge l'utilisation d'un certain nombre d'API en langage Java 8, en utilisant une technique appelée désuchage, sans exiger un niveau d'API minimum pour votre application:
https://developer.android.com/studio/preview/features#j8-desugar
POSTE ORIGINAL DE 2017
Android Studio 3.0 a commencé à fournir une prise en charge intégrée de certaines fonctionnalités du langage Java 8, à savoir:
À partir du niveau 24 de l'API, les API Java 8 suivantes sont également 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()
En plus de cela, le
try-with-resources
support a été étendu à tous les niveaux d'API Android.D'autres fonctionnalités de Java 8 devraient être ajoutées à l'avenir.
Pour plus de détails, visitez:
https://developer.android.com/studio/write/java8-support.html
la source
2.4.0-alpha6
). Veuillez vérifier le bloc de devis dans la réponse.Moyen facile
Vous pouvez activer la prise en charge de Java 1.8 pour le projet Android.
Ouvrir la structure du projet
Soit en appuyant sur Ctrl + Shift + Alt + S
Ou
File > Project Structure
Mettez à jour la compatibilité source et la compatibilité cible vers 1.8 dans la boîte de dialogue Structure du projet, comme indiqué (cliquez sur Fichier> Structure du projet).
Ou vous pouvez utiliser gradle
Projet de synchronisation. Et c'est tout!
Remarque: la prise en charge de Java 1.8 peut être activée pour Android Studio 3.0.0 ou supérieur. Voir la documentation pour plus de lecture.
la source
Lorsque j'ai posé cette question il y a près de 2 ans, la réponse était vraiment «officiellement» non, mais comme le souligne la réponse d'ekcr1, vous pouvez obtenir l'une des fonctionnalités les plus attendues (lambdas) si vous utilisez retrolamba. À l'époque, j'utilisais encore eclipse, car Android Studio était en mode «aperçu», donc je n'ai jamais poursuivi cette voie.
Aujourd'hui, je pense que la réponse «officielle» est toujours non, et bien que la retrolamba semble toujours être une bonne voie à suivre, il existe une autre option pour ceux qui souhaitent emprunter une voie quelque peu «non officielle», à savoir Kotlin.
Aujourd'hui, Kotlin a atteint 1.0.0. Pour ceux qui ne connaissent pas Kotlin, plus d'informations peuvent être trouvées sur leur site Web ici:
https://kotlinlang.org
ou regardez cette vidéo utube d'une conférence donnée par Jake Wharton
https://www.youtube.com/watch?v=A2LukgT2mKc
la source
Dernières nouvelles:
Google annonce qu'avec Android N et Android Studio 2.1+, la plate-forme prendra en charge Java 8. Une version stable de studio 2.1 a également été publiée.
Enfin, nous pouvons utiliser des expressions lambda. Plus de filtre de liste dans la boucle. Horeeey.
la source
Ajoutez cette config build.gradle et synchronisez gradle:
la source
Google vient d'annoncer que Java 8 sera pris en charge nativement par Android et que la chaîne d'outils Jack sera obsolète:
Plus d'informations ici: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
la source
Oui. Nous utiliserons bientôt Java 8!
https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
la source
ajouter cette ligne dans le module lvl build gradel
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
la source
J'ai écrit une réponse similaire à une question similaire sur Stack Overflow, 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 Java 8. Voici un extrait du billet blogspot des développeurs Android :
Avant Android Studio 2.1:
Android ne prend pas encore en charge Java 1.8 (il ne prend en charge que jusqu'à 1.7), vous ne pouvez donc pas utiliser les fonctionnalités Java 8 comme lambdas.
Cette réponse donne plus de détails sur la compatibilité d'Android Studio ; il est dit:
Si vous voulez en savoir plus sur l'utilisation
gradle-retrolambda
, cette réponse donne beaucoup de détails à ce sujet .la source
"SDK Location"
(ceci est sur un Mac FWIW) dit simplement que"/Users/me/Library/Android/sdk"
j'utilise Java8 - comment utiliser Java8 ?? Merci!J'ai pensé que je publierais une réponse mise à jour pour ceux qui recherchent 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ée sur leur site Web , Google dit:
De plus, les API de langage Java 8 suivantes sont également disponibles:
la source
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, il y a quelque temps, la réponse est devenue Oui . Je n'ai jamais mis à jour la réponse acceptée car c'était la bonne réponse à l'époque. (Je ne sais pas quelle est la politique de débordement de pile à ce sujet)
Je voulais juste ajouter une autre réponse pour ceux qui recherchent toujours ce sujet. Au 17/05/2017, Google a également annoncé que Kotlin est également une langue officielle pour le développement Android.
Je n'ai pas trouvé de communiqué de presse officiel, mais j'ai regardé certaines des vidéos d' E / S Google là où elles ont été annoncées. Voici un lien vers un blog post par l'équipe Kotlin sur l'annonce.
la source
L'ajout de ce qui suit a résolu le problème pour moi (Android studio 2.3.2):
build.gradle (Projet)
build.gradle (Module: application)
la source
Un sous-ensemble de Java 8 est désormais pris en charge sur Android Studio. Effectuez simplement les réglages de compatibilité source et cible dans la fenêtre ci-dessous:
Fichier -> Structure du projet
Plus d'informations sont fournies dans le lien ci-dessous.
https://developer.android.com/studio/write/java8-support.html
la source
MISE À JOUR 2019/10/28
Android Studio 4.0 résout ce problème .
Le compilateur D8 corrige un backport des API natives Java 8 dans votre APK au moment de la compilation et votre application utilisera ce code, au lieu des API natives, lors de l'exécution. Le processus est appelé désucré .
la source
Toutes les solutions ci-dessus ne semblent pas fonctionner en 2019 avec la dernière version d' Android Studio 3.4+ .
J'ai trouvé une solution parfaite et à jour pour migrer ou mettre à niveau votre projet Android vers Java 8 .
Solution: Cliquez sur Fichier -> Structure du projet -> Modules -> onglet Propriétés .
Changez la compatibilité source et la compatibilité cible en 1.8 (Java 8)
la source
Oui, vous pouvez utiliser les fonctionnalités du langage Java 8 dans Android Studio, mais la version doit être 3.0 ou supérieure. Lisez cet article pour savoir comment utiliser les fonctionnalités de java 8 dans le studio Android.
https://bijay-budhathoki.blogspot.com/2020/01/use-java-8-language-features-in-android-studio.html
la source
Moyen le plus simple d'ajouter la prise en charge de Java 8
Ajoutez-le simplement dans votre fichier build.gradle.
la source