Как это возможно, что .apk не содержит class.dex, но работает?

Я скачал .apk и пытаюсь распаковать его с помощью d2j-dex2jar, но получаю

com.googlecode.dex2jar.DexException: java.io.IOException: не удается найти class.dex в почтовом индексе

Если попробовать заглянуть внутрь обычным файловым архиватором, то на самом деле нет classes.dex

Как это возможно ? Кстати, приложение полностью функциональное.


person diimdeep    schedule 10.11.2013    source источник


Ответы (1)


Если предварительная оптимизация dex включена (она включена по умолчанию в пользовательских сборках), файл .odex (например, Email.odex, рядом с Email.apk) будет сгенерирован из class.dex, а исходный class.dex удален. из апк.

Редактировать: еще один способ получить .dex — использовать APKTool для извлечения .dex, который вы можете использовать из командной строки. вот ссылка:

https://code.google.com/p/android-apktool/downloads/list

person Hounge    schedule 10.11.2013
comment
Во время компиляции? Как он тогда устанавливается? Или во время установки? - person diimdeep; 10.11.2013
comment
Ты великолепен @Hounge. Спасибо .. Я зря тратил время :) - person andrea.rinaldi; 05.02.2014
comment
Спасибо! Я нашел файл .odex и файл .vdex во вложенной папке рядом с файлом .apk на устройстве. - person Sam; 08.02.2020