onClick () не работает после применения dexguard.Есть ли способ решить это? - PullRequest
0 голосов
/ 24 сентября 2018

Я использую dexguard для защиты своего приложения.Недавно я обновил dexgaurd версию с 8.0.1 до 8.2.15 .Раньше все работало нормально до обновления.Но с версией 8.2.15 , когда я применяю dexguard , метод onCick не работает в одном из фрагментов SettingsFragment , для всех остальных фрагментов работает нормально.Однако код и способ реализации onClick () одинаков для всех Fragments .Но для SettingsFragment это не работает.Пожалуйста, помогите.

Вот мой onClick метод в SettingsFragment

View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.relSignOut:
                    mCallback.doSignOut();
                    break;
//                case R.id.relEditProfile:
//                    loadManageProfile();
//                    break;
                case R.id.btn_edit_profile:
                    loadManageProfile();
                    break;
                case R.id.relDynamicFxRate:
                    parent.startSetExchangeAlertActivity();
                    break;
            }
        }
    };

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

(просто преобразовав мой комментарий в ответ)

Пожалуйста, запустите оператор switch и замените его if-else.Может показаться немного ненаучным и нелогичным, но я много раз работал на меня.

Я не знаю, является ли это возможной ошибкой в ​​компиляторе или в Android или нет, но иногда отклонение только оператора switch не помогаетПомогите.Затем я должен заменить view.getId() на view.getPosition() и проверить по порядку или что-то в этом роде, чтобы оно все равно заработало.

0 голосов
/ 24 сентября 2018

Вы должны исключить запутывание onClick таких методов:

-keepclassmembers class * {
    public void onClick (android.view.View);
}
...