web-dev-qa-db-fra.com

AndroidX MultiDex introuvable

Je crée un nouveau projet Android et j'ai décidé d'utiliser le nouveau remplacement AndroidX pour les bibliothèques de support, dont les documents peuvent être trouvés ici: https://developer.Android. com/jetpack/androidx/migrate .

J'ai suivi les étapes à la lettre et après avoir synchronisé Gradle, j'ai accès à l'espace de noms androidx et aux différentes classes qu'il contient. Cependant, lors de la création de ma classe d'application, je souhaite hériter de androidx.multidex.MultiDexApplication (qui peut être vu dans le tableau dans le lien ci-dessus). Cependant, l'ensemble du package multidex n'existe pas.

Quelqu'un a-t-il résolu ce problème? Des pointeurs?

10
Thomas Cook

Android.enableJetifier=true n'a pas le moindre sens, tout en pouvant le remplacer.

vous pouvez simplement l'ajouter en tant que dépendance, sans modification non transparente des espaces de noms:

implementation "androidx.multidex:multidex:2.0.0"
20
Martin Zeitler

Si vous utilisez androidx, vous devez ajouter MultiDexApplication (référence depuis androidx) à votre fichier manifeste.

<application
        Android:name="androidx.multidex.MultiDexApplication"
        .....></application>
1
gokhan

En plus de la réponse de Martin Zeitler, j'ai dû ajouter dans mon fichier de construction gradle:

defaultConfig {
  ...
  multiDexEnabled true // Add this line
  ...
}

Ainsi que la dépendance

implementation "androidx.multidex:multidex:2.0.0"

Quant à savoir pourquoi cela se produit, ce guide d'utilisation on Android Les développeurs l'expliquent très bien.

0
Attaque

Ok, compris!

La bibliothèque Multidex n'a jamais fait partie de Android support lib, c'était une bibliothèque supplémentaire qui devait être importée dans gradle. Donc, je l'ai maintenant importée dans mon bloc de dépendances dans le fichier gradle de mes modules et défini ce qui suit dans mon fichier gradle.properties:

# Jetifier automatically updates dependancy binaries
# To swap out support lib for androix
Android.enableJetifier=true

Maintenant, au moment de la compilation, la dépendance multidex est remplacée par l'implémentation androidx.

0
Thomas Cook