Partager via


Migration AndroidX dans Xamarin.Forms

AndroidX remplace la bibliothèque de support Android. Cet article explique pourquoi AndroidX existe, son impact et Xamarin.Formscomment migrer votre application pour utiliser les bibliothèques AndroidX.

Important

Si vous migrez une application vers Xamarin.Forms la version 5.0, consultez Comment faire migrer mon application vers Xamarin.Forms la version 5.0 ?.

Historique d’AndroidX

La bibliothèque de support Android a été créée pour fournir des fonctionnalités plus récentes sur les versions antérieures d’Android. Il s’agit d’une couche de compatibilité qui permet aux développeurs d’utiliser des fonctionnalités qui n’existent peut-être pas sur toutes les versions du système d’exploitation Android et d’avoir des secours gracieux pour les versions antérieures. La bibliothèque de support comprend également des classes pratiques et d’assistance, des outils de débogage et d’utilitaire, ainsi que des classes sophistiquées qui dépendent d’autres classes de bibliothèque de support pour fonctionner.

Bien que la bibliothèque de support soit à l’origine un binaire unique, elle a grandi et évolué en une suite de bibliothèques, qui sont presque essentielles pour le développement d’applications modernes. Voici quelques fonctionnalités couramment utilisées dans la bibliothèque de support :

  • Classe de Fragment support.
  • RecyclerView, utilisé pour la gestion des listes longues.
  • Prise en charge multidex pour les applications avec plus de 65 536 méthodes.
  • La classe ActivityCompat.

AndroidX remplace la bibliothèque de support, qui n’est plus gérée. Tous les nouveaux développements de bibliothèques se produisent dans la bibliothèque AndroidX. AndroidX est une bibliothèque repensée qui utilise le contrôle de version sémantique, des noms de package plus clairs et une meilleure prise en charge des modèles d’architecture d’application courants. AndroidX version 1.0.0 est l’équivalent binaire de la bibliothèque de support version 28.0.0. Pour obtenir la liste complète des mappages de classes de la bibliothèque de support vers AndroidX, consultez Mappages de classes de la bibliothèque de support sur developer.android.com.

Google a créé un processus de migration appelé Jetifier avec AndroidX. Jetifier inspecte le bytecode jar pendant le processus de génération et remappage les références de bibliothèque de support, à la fois dans le code d’application et dans les dépendances, à leur équivalent AndroidX.

Dans une Xamarin.Forms application, comme dans une application Java Android, les dépendances jar doivent être migrées vers AndroidX. Toutefois, les liaisons Xamarin doivent également être migrées pour pointer vers les fichiers jar sous-jacents corrects. Xamarin.Forms ajout de la prise en charge de la migration automatique d’AndroidX dans la version 4.5.

Pour plus d’informations sur AndroidX, consultez Vue d’ensemble d’AndroidX sur developer.android.com.

Migration automatique dans Xamarin.Forms

Pour migrer automatiquement vers AndroidX, un Xamarin.Forms projet de plateforme Android doit :

  • Api Android cible version 29 ou ultérieure.
  • Utilisez la Xamarin.Forms version 4.5 ou ultérieure.
  • Avoir des dépendances directes ou transitives sur les bibliothèques de prise en charge Android.

Une fois que vous avez confirmé ces paramètres dans votre projet, générez l’application Android dans Visual Studio 2019. Pendant le processus de génération, le langage intermédiaire (IL) est inspecté et les dépendances et liaisons de la bibliothèque de support sont échangées avec les dépendances AndroidX. Si votre application a toutes les dépendances AndroidX requises pour générer, vous ne remarquerez aucune différence dans le processus de génération.

Important

La migration manuelle vers AndroidX aboutira au processus de génération le plus rapide pour votre application, et c’est l’approche recommandée pour la migration AndroidX. Cela implique de remplacer les dépendances de bibliothèque de support par des dépendances AndroidX et de mettre à jour votre code pour consommer des types AndroidX. Pour plus d’informations, consultez Utiliser des types AndroidX.

Si des dépendances AndroidX ne font pas partie du projet sont détectées, une erreur de génération est signalée indiquant les packages AndroidX manquants. Un exemple d’erreur de build est illustré ci-dessous :

Could not find 37 AndroidX assemblies, make sure to install the following NuGet packages:
- Xamarin.AndroidX.Lifecycle.LiveData
- Xamarin.AndroidX.Browser
- Xamarin.Google.Android.Material
- Xamarin.AndroidX.Legacy.Supportv4
You can also copy and paste the following snippit into your .csproj file:
 <PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0-rc1" />
 <PackageReference Include="Xamarin.AndroidX.Browser" Version="1.0.0-rc1" />
 <PackageReference Include="Xamarin.Google.Android.Material" Version="1.0.0-rc1" />
 <PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0-rc1" />

Les packages NuGet manquants peuvent être installés via le Gestionnaire de package NuGet dans Visual Studio, ou en modifiant votre fichier .csproj Android pour inclure les PackageReference éléments XML répertoriés dans l’erreur.

Une fois les packages manquants résolus, la reconstruction du projet charge les packages manquants et votre projet est compilé à l’aide de dépendances AndroidX au lieu des dépendances de la bibliothèque de support.

Notes

Si votre projet et vos dépendances de projet ne font pas référence aux bibliothèques de support Android, le processus de migration ne fait rien et n’est pas exécuté.