Qu'est-ce que Jetifier? Par exemple, pour créer un nouveau projet à l'aide des dépendances packagées androidx, ce nouveau projet doit ajouter la ligne suivante au fichier gradle.properties :
android.enableJetifier=true
Alors qu'est-ce que cela signifie - «activer le jetificateur»?
implementation "com.commonsware.cwac:document:0.3.0"
dans votre fichierdependencies
. Cette version de bibliothèque a une dépendance transitive surcom.android.support:support-annotations:27.0.2
. Cependant, vous souhaitez utiliserandroidx.annotation:annotation
dans le cadre de l'utilisation d'autres dépendances AndroidX. Jetifier serait en quelque sorte mis à jourcom.commonsware.cwac:document
pour être utiliséandroidx.annotation:annotation
.Réponses:
Cette année, Google I / O (18), Google a annoncé Jetpack qui est un ensemble / collection de bibliothèques pour faciliter la vie des développeurs.
Jetpack comprend des composants d'architecture Android précédemment introduits (ViewModel, Room, Paging, LiveData, etc.) ainsi que des composants d'architecture nouvellement introduits tels que WorkManager, Navigation. En dehors de ce Jetpack, il existe également d'autres ensembles de bibliothèques comme AndroidX, AndroidKTX, etc.
AndroidX est une nouvelle structure de package pour les bibliothèques de support Android telles que le support, la liaison de données, la conception, etc.
par exemple, maintenant, les développeurs utiliseront androidx.databinding. au lieu de android.databinding. lors de l'importation de bibliothèques dans nos projets
Cela permet à Google d'ajouter SemVer ou Semantic Versioning dans les packages de bibliothèque. Pour les développeurs, cela signifie que nous n'avons pas à utiliser la même version de bibliothèque de support pour toutes les bibliothèques de support. Chaque support ou mieux pour dire la bibliothèque AndroidX maintiendra sa propre version.
Un autre avantage pour les développeurs est que nous n'avons pas à nous soucier de maintenir la même version pour toutes les bibliothèques de support de notre projet.
À propos de Jetifier, il convertit tous les packages de support de dépendance au moment de la génération. Selon la documentation officielle de Jetifier
Pour utiliser AndroidX dans un projet, nous devons définir targetSdkVersion pour notre projet sur 28 et ajouter les 2 lignes suivantes dans le fichier gradle.properties .
J'espère que cela répondra à votre question.
ÉDITER
Ce lien a un mappage de tous les composants de la bibliothèque de support avec leur homologue AndroidX.
Veuillez également consulter ce blog pour des explications détaillées sur AndroidX
la source
En supposant que vous êtes familier avec
AndroidX
. Sinon, veuillez consulter @ this post .Par exemple
Si vous avez
PhotoView.java
dans votre dépendance. Cela utilise la bibliothèque de supportAppCompatImageView
.Cette classe est maintenant déplacée vers le
androidx
package, alors commentPhotoView
obtiendra androidxAppCompatImageView
? Et l'application fonctionne toujours sur l'appareil.Qui a fait cette course?
Jetifier se convertira
android.support.v7.widget.AppCompatImageView
enandroidx.appcompat.widget.AppCompatImageView
lors de la construction du projet.Conclusion
L'activation de Jetifier est importante lorsque vous migrez des bibliothèques de support vers AndroidX .
Consultez cet article pour en savoir plus sur AndroidX.
Info
Votre code peut afficher des erreurs de compilation après l'activation de Jetifier lors de l'utilisation de classes de dépendance. que vous pouvez supprimer en supprimant
.idea
,.gradle
et projet de resynchronisation.la source
Jetifier aide à migrer un projet Android vers AndroidX .
Jetifier aide à rendre la bibliothèque tierce compatible avec votre projet AndroidX.
Si vous n'utilisez aucune bibliothèque tierce dans votre projet Android, vous n'avez pas besoin d'utiliser Jetifier car Jetifier aide uniquement à «rendre la bibliothèque tierce» compatible avec votre projet au cas où vous migreriez vers AndroidX. Donc, pour que votre projet utilise Jetifier, vous écrivez ci-dessous le code dans gradle.properties .
Si vous ne migrez pas vers AndroidX et que vous utilisez la méthode précédente d'utilisation des bibliothèques Android (par exemple: com.android.support ), ces bibliothèques tierces n'ont pas besoin d'être rendues compatibles car ces bibliothèques tierces sont déjà compatibles avec la méthode précédente de en utilisant les bibliothèques Android. Dans ce cas, vous n'avez pas besoin d'utiliser Jetifier, donc maintenant, vous n'avez pas besoin d'écrire les lignes ci-dessus ou vous pouvez simplement écrire comme ci-dessous pour changer les valeurs à l'avenir pour passer à androidx: -
la source
Jetifier
Le jetifier est un outil pratique qui migre automatiquement votre
dependencies
versAndroidX
au moment de la construction. Sans cela, vous auriez besoin de toutes les dépendances que vous utilisez pour avoir une version AndroidX avant de pouvoir migrer, et cela ne se produira probablement pas avant un certain temps.Il y a une limitation importante à noter: le jetificateur ne fonctionne que sur les artefacts emballés. Cela ne fonctionne pas sur votre code source, que vous devez mettre à jour vous-même
pour activer AndroidX, vous devez ajouter 2 indicateurs à votre
gradle.properties
fichier. Le premier indicateur indique au plug-in Android d'utiliser desAndroidX
packages à la place deAppCompat
, et le deuxième indicateur activeraJetifier
:Voir ceci , cet article pour en savoir plus sur AndroidX
la source
De la doc officielle
C'est utile pour la compatibilité. Lorsqu'un consommateur utilise
androidX
et qu'un producteur utilisesupport
. Par exemple, lorsque votre projet surAndroidX
souhaite utiliser une dépendance qui utilise à lasupport library
place deAndroidX
[Exemple]la source
Ajoutez ces deux lignes android.useAndroidX = true
android.enableJetifier = true
dans buid.gradle Cela a fonctionné pour moi
la source