DexIndexOverflowException: Impossible de fusionner nouvel indice 65772 dans une situation de non-jumbo instruction!: Jumbo Mode? et/ou Multi-Dex? Ce qui est derrière la scène?
J'ai essayé de mettre jumboMode dans gradle pour mon projet, il semble en mesure de résoudre le suivant DexIndexOverflowException:
com.android.dex.DexException: Impossible de fusionner nouvel indice 65536 dans une situation de non-jumbo instruction!
DexIndexOverflowException: Impossible de fusionner nouvel indice 65772 dans une situation de non-jumbo instruction!
1) qu'est-Ce que jumboMode option ne fait derrière la scène?
android {
...
dexOptions {
jumboMode true
}
}
2) je remarque aussi que l'activation du mode multi-dex permet de résoudre le problème, quel est le bon choix entre ces deux approches?
android {
...
defaultConfig {
...
multiDexEnabled true
}
}
Un peu de fond ici: stackoverflow.com/questions/21490382/...
OriginalL'auteur phdfong - Kenneth Fong | 2015-05-28
Vous devez vous connecter pour publier un commentaire.
"Jumbo" signifie "comme avant, mais avec un grand nombre de référence".
Presque rien en DEX-les fichiers référencés avec des valeurs de 16 bits (même bytecode présent de 16-bit "unités"), voici donc possible afin de ne traiter que 65536 objets (méthodes ou de chaînes de caractères), pas plus.
Mais l'application peut contenir beaucoup plus de chaînes! Comment résoudre cette limite? Les développeurs d'Android ont juste ajouté des nouveaux opérateurs avec "jumbo" de suffixe, de sorte que vous pouvez chaîne de référence avec "const-chaîne 16_bit_addr" ou "const-chaîne 32_bit_addr" qui peut faire référence à 2^32 éléments. Actuellement https://source.android.com/devices/tech/dalvik/dalvik-bytecode "jumbo" suffixe n'existe que pour les chaînes (const-chaîne/jumbo), mais dans les anciennes docs contient:
OriginalL'auteur bukkojot