Ошибка Dexopt на очень большом APK (из-за порядка method_idx), когда dex.force.jumbo = true
У меня очень большой проект Android с несколькими большими, сторонними банками (как библиотеки Android).
Я верюМы ударили Дексаs максимальное количество ограничений метода (компиляция через eclipse):
[2012-11-18 02:28:45 - Найти в файлах] Dx обрабатывает classes.dex ...
[2012-11-18 02:28:48 - Dex Loader] Невозможно выполнить dex: Невозможно объединить новый индекс 66774 в не-гигантскую инструкцию!
[2012-11-18 02:28:48 - Найти в файлах] Преобразование в формат Dalvik не удалось: Невозможно выполнить dex: Невозможно объединить новый индекс 66774 в не-гигантскую инструкцию!
Используя преимущества инструментов SDK 21 (инструменты платформы 16), я отредактировал свой основной проект project.properties для установки.dex.force.jumbo=true
Флаг позволил мне сгенерировать APK. Но я не могУстановите его правильно (как на физическом, так и на эмуляторе). Кажется, произошел сбой в работе dex optimizer:
11-18 20: 11: 05.338: I / PackageManager (103): запуск dexopt для: com.mypackage.myapp
11-18 20: 11: 08.577: E / dalvikvm (868): Неверный метод method_idx: 0x2ae0, затем 0x1
11-18 20: 11: 08.577: E / dalvikvm (868): проблема с элементом 1544 при смещении 0xf7ae24
11-18 20: 11: 08.577: E / dalvikvm (868): своп типа раздела 2006 не удался
11-18 20: 11: 08.577: E / dalvikvm (868): ОШИБКА: обмен байтами + ошибка проверки
11-18 20: 11: 08.597: E / dalvikvm (868): оптимизация не удалась
11-18 20: 11: 08.597: W / installd (39): DexInv: --- END '/data/app/com.mypackage.myapp-1.apk» --- статус = 0xff00, процесс не выполнен
11-18 20: 11: 08.597: E / installd (39): сбой dexopt '/data/dalvik-cache/data@[email protected]@classes.dex» res = 65280
11-18 20: 11: 08.697: W / PackageManager (103): пакет не можетне может быть установлен в /data/app/com.mypackage.myapp-1.apk
11-18 20: 11: 09.018: D / dalvikvm (103): GC_EXPLICIT освобожден 1698K, 13% свободен 17034K / 19463K, приостановлен 7мс + 135мс
11-18 20: 11: 09.068: D / AndroidRuntime (780): выключение виртуальной машины
Я пытаюсь использоватьdex.force.jumbo
флаг для цели, для которой он не предназначен, или эта ошибка непредсказуема?
Если да, то есть ли лучшая стратегия для создания проекта, который включает в себя очень большое количество классов / методов?