Après que j’ai connecté mon application Flutter à Firestore, je me suis mangé cette splendide erreur multidex dans Flutter empêchant tout lancement de l’émulateur Android : Error:Cannot fit requested classes in a single dex file
C’est ce qui arrive quand on dépasse la taille maximale autorisée pour le fichier de classes Dex.
En guise de pense-bête, voici comment autoriser le multidex dans Flutter Android pour se débarrasser de l’erreur.
Autoriser le multidex pour Flutter
La manip est tout ce qu’il y a de plus bête, d’autant qu’elle n’impacte que 2 fichiers de l’arborescence :
mon_projet > android > app > build.gradle
(ne vous plantez pas en prenant l’autre)mon_projet > android > app > gradle.properties
Les modifications multidex dans build.gradle
Dans mon_projet > android > app > build.gradle, il faut ajouter multiDexEnabled true et passer idéalement le minSdkVersion à 21.
defaultConfig {
...
minSdkVersion 21
multiDexEnabled true
}
Toujours dans ce fichier, il convient d’ajouter la ligne implementation ‘com.android.support:multidex:1.0.3’ dans dependencies.
dependencies {
...
implementation 'com.android.support:multidex:1.0.3'
}
Les modifications multidex dans gradle.properties – Ajouter Jetifier
Et dans mon_projet > android > app > gradle.properties
, il faut s’assurer que android.useAndroidX et android.enableJetifier sont présents et positionnés à true pour ajouter Jetifier, comme ci-dessous. Ajoutez les si elles sont manquantes
android.useAndroidX=true
android.enableJetifier=true
Il reste maintenant à sauvegarder les fichiers et relancer l’émulateur.