#android #proguard
#Android #proguard
Вопрос:
Иногда я получаю трассировки стека ошибок, которые трудно отследить, потому что, когда Proguard запутывает, он также объединяет некоторые частные методы, а затем, выполняя повторную трассировку, у меня нет точной строки, которая вызывает ошибку.
Мой вопрос в том, есть ли способ при выполнении экспортированного подписанного apk-файла с Eclipse сохранить запутанные файлы классов, которые упакованы в classes.dex. Таким образом, с запутанными файлами классов я смогу деобфускировать их и лучше видеть, какой код объединен, и выяснить, где может быть ошибка трассировки стека.
Ответ №1:
Вам необходимо сохранить mapping.txt файл для каждой версии, которую вы выпускаете, и затем вы можете использовать его для де-запутывания трассировок с помощью команды ‘retrace’ (или просто поиска имен в mapping.txt вручную номера строк не меняются):
http://developer.android.com/guide/developing/tools/proguard.html#decoding
Комментарии:
1. Я знаю, как деобфускировать с помощью retrace. Моя проблема в том, что текущая повторная трассировка не дает мне достаточно информации из-за объединенной функции.
2. О, извините, что пропустил это. Не знаете способа сохранить классы с помощью Eclipse, возможно, вы сможете сделать это с помощью Ant, где у вас больше контроля над шагами сборки. Возможно, вы захотите указать
-dontoptimize
опцию ProGuard, которая не позволит объединить код.