Proguard удаляет параметры метода - PullRequest
0 голосов
/ 17 октября 2018

Недавно я обнаружил очень странную вещь с ProGuard.У меня есть этот фрагмент кода code snippet

Как видите, метод showTipHoodLock принимает 2 параметра, фрагментМенеджер и верх (с некоторым смещением)

но после того, как я скомпилировал приложение с minifyEnabled true

Я получил это при обратном вызове клика onClick callback

и это Utils.showTipHoodLock метод showTipHoodLock

Как видите, proguard удалил 2-й параметр (названный top ) из сигнатуры метода и заменил его вхождения на 0 литерал.

Это ошибка или особенность, или я что-то упустил?

PS Если я изменю значения в строке

int coords[] = {0, 0}

на любые другие числа, то все работает отлично, и ничего не удаляется.Более того, один и тот же фрагмент кода (который копируется) в другой части приложения (в другом фрагменте) начинает работать.

1 Ответ

0 голосов
/ 22 октября 2018

Это ошибка или особенность, или я что-то упустил?

Это НЕ ошибка, это функция для оптимизации вашего кода.

В соответствии с вашим фрагментом кода, на второй параметр ссылается следующая логика как READ ONLY , а его значение FIXED равно 0 ,

Proguard удалит (своего рода оптимизация Proguard: Удалите неиспользуемые параметры или Распространите постоянные аргументы ) этот параметр со значением KNOWN FIXED вупростить поток вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...