DexIndexOverflowException: kann Nicht Zusammenführen neuen index 65772 in eine nicht-jumbo-Unterricht!: Jumbo-Modus? und/oder Multi-Dex? Was ist hinter der Szene?
Habe ich versucht, jumboMode in gradle für mein Projekt, es scheint in der Lage zu lösen die folgenden DexIndexOverflowException:
com.android.dex.DexException: kann Nicht Zusammenführen neuen index 65536 in einem nicht-jumbo-Befehl!
DexIndexOverflowException: kann Nicht Zusammenführen neuen index 65772 in eine nicht-jumbo-Befehl!
1) Was ist jumboMode option tatsächlich hinter den kulissen?
android {
...
dexOptions {
jumboMode true
}
}
2) ich merke auch, dass die Aktivierung der multi-dex-can lösen Sie das gleiche problem, was ist die richtige Wahl zwischen diesen beiden Ansätzen?
android {
...
defaultConfig {
...
multiDexEnabled true
}
}
InformationsquelleAutor der Frage phdfong - Kenneth Fong | 2015-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Jumbo" bedeutet "gleich wie vorher, aber mit einer großen Anzahl Referenz".
Fast alles in DEX-Dateien auf 16-bit-Werte (auch bytecode vorhanden als 16-bit - "Einheiten"), so ist hier möglich, nur die Adresse 65536 Objekte (Methoden oder strings), nicht mehr.
Aber Anwendung kann enthalten viel mehr Saiten! Wie löst man diese Grenze? Die Entwickler von Android nur neue opcodes mit "jumbo" - suffix, so können Sie die Referenz-string mit "const-string 16_bit_addr" oder "const-string 32_bit_addr" Referenz 2^32 Elemente. Derzeit https://source.android.com/devices/tech/dalvik/dalvik-bytecode "jumbo" - suffix existiert nur für strings (const-string/jumbo), aber in älteren docs enthalten:
InformationsquelleAutor der Antwort bukkojot