Продолжайте вести журнал во время обфускации с помощью Dexguard

#android #logging #dexguard

#Android #ведение журнала #dexguard

Вопрос:

Я пытаюсь заставить Dexguard не отключать функции ведения журнала, когда он сжимается и запутывает мой код. Поэтому я прокомментировал следующую инструкцию в файле конфигурации Dexguard:

-предположим, что osideeffects влияет на класс android.util.Журнал {…}

Как только эта инструкция прокомментирована, сборка завершается ошибкой со следующим сообщением об ошибке :

Сбой выполнения задачи ‘: app: dexguardRelease’.
> Инструкция имеет недопустимый постоянный размер индекса ([699742] ldc_w #65536)

Сначала я подумал, что проблема связана с ограничениями Android 64K, но сборка выполняется успешно, когда dexguard отключен или когда он включен и настроен на отключение функций ведения журнала.

Возможно ли, что у dexguard возникают проблемы с запутыванием функций, таких как Log.d(), которые могут содержать длинные строки в качестве входных аргументов?

Спасибо

Ответ №1:

Вероятно, у вас есть много строк отладки в этом классе в сочетании с -encryptstrings ** директивой.

Это приведет к большому количеству зашифрованных строк в одном классе, что приведет к ошибкам, как описано в вашем сообщении.

Я бы посоветовал вам пересмотреть свои -encryptstrings правила и шифровать только те, которые действительно чувствительны.