Je sais que cette question peut être dupliquée mais je n'ai trouvé aucune réponse à mon problème, j'utilise LocalDateTime
dans mon application Android qui nécessite l'API 26 et l'API de mon appareil est 25.
Que puis-je faire? Votre aide sera très appréciée.
3 Réponses :
Vous pouvez utiliser ThreeTenBP . Mais pour Android, il est recommandé d'utiliser ThreeTenABP de Jake Wharton.
Pourquoi ne pas utiliser ThreeTenBP?
Semblable aux problèmes liés à l'utilisation de Joda-Time sur Android, le threetenbp utilise une ressource JAR pour charger les informations de fuseau horaire. Il s'agit d'un mécanisme extrêmement inefficace sur Android.
Cette bibliothèque place les informations de fuseau horaire en tant qu'actif Android standard et fournit un chargeur personnalisé pour une analyse efficace.
Pourquoi ne pas utiliser Joda-Time?
Joda-Time dispose d'une très grande API qui apporte une très grande taille binaire et un grand nombre de méthodes. Le créateur du JSR-310 et du Joda-Time a également déclaré que si Joda-Time n'est pas cassé, il présente des défauts de conception.
Si vous utilisez déjà Joda-Time, il y a peu de raisons de changer à moins que sa taille ou son nombre de méthodes ne vous concerne. Pour les nouveaux projets, cependant, cette bibliothèque propose les API standard de Java 8 sous la forme d'un package beaucoup plus petit non seulement en taille binaire et en nombre de méthodes, mais également en taille d'API.
Ces explications proviennent de ThreeTenABP de Jake Wharton.
Je viens de suivre le lien que vous m'avez donné mais l'erreur est toujours là :(
Vous devez utiliser https://github.com/JakeWharton/ThreeTenABP pour pouvoir utiliser LocalDateTime avec l'API Android <26.
Ajoutez les dépendances à votre projet (veuillez suivre le projet README):
import org.threeten.bp.LocalDateTime;
LocalDateTime
ensuite votre importation LocalDateTime
partir de:
import java.time.LocalDateTime;
à:
implementation 'com.jakewharton.threetenabp:threetenabp:1.2.1'
Merci beaucoup! Tu m'as sauvé.
Super ça vous aide!
Il est maintenant recommandé dans le repo ThreeTenABP d'utiliser le désugarage de code ( developer.android.com/studio/write/… )
La meilleure façon d'utiliser LocalDateTime
sur une version inférieure d'Android est de désugarer (vous devez avoir le plugin Android Gradle version 4.0 ou supérieure). Ajoutez simplement les lignes ci-dessous à votre fichier gradle de module d' app
:
Enfin, ajoutez le ff. dépendance à votre bloc de dépendances:
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
Il est bien évident que vous ne pouvez pas utiliser de nouvelles fonctionnalités sur des appareils plus anciens. Vous devez soit implémenter cette fonctionnalité par vous-même, soit trouver une bibliothèque offrant des fonctionnalités similaires