Intereting Posts
Разблокировать тег mifare с помощью android FirebaseJobDispatcher запускается при изменении сети Пытается разобрать JSON с помощью GSON Лучшая практика. Как защитить Http-запросы (например, вход в систему) из мобильного приложения Какой порт и протокол использует Google Cloud Messaging (GCM)? Дизайн шаблона для расширения активности Android? Предоставляет ли веб-браузер Android возможность загружать фотографии, только что снятые с камеры? Воспроизведение видео из файловой системы Chrome, не работающей на Android Как создать стереоскопический просмотр изображения с фотосферы с помощью Google Cardboard SDK Размещение видео внутри видеообзора «Проблема с записью вывода: Слишком много ссылок на поле: 70185; Max – 65536. Вы можете попробовать использовать опцию –multi-dex. "При создании Android-проекта Как получить DiscussionHistory для комнаты MultiUserChat с помощью aSmack? Android spinner Связывание данных с использованием XML и отображение выбранных значений Как я могу перенести прибор для тестирования базы данных на устройство из своего тестового приложения Как использовать новые функции в макете ограничений 1.1?

Прогейдер сохраняет имена классов?

Привет, я пишу приложение для Android, и я установил Proguard для запутывания моего приложения. Однако я использую загрузчик классов для динамической загрузки различных расширений в мое приложение. Проблема в том, что они неправильно загружаются, если их имена изменены. Как сохранить Proguard в запутывании определенных имен классов?

Solutions Collecting From Web of "Прогейдер сохраняет имена классов?"

Используйте опцию -keepnames в своем proguard.cfg

Обратитесь к руководству https://www.guardsquare.com/en/proguard/manual/usage#keepoptions :

-keepnames class_specification

Сокращение для -keep,allowshrinking захватывать class_specification

Указывает классы и члены класса, имена которых должны быть сохранены, если они не удалены на этапе сокращения. Например, вы можете сохранить все имена классов классов, реализующих интерфейс Serializable, чтобы обработанный код оставался совместимым с любыми первоначально сериализованными классами. Классы, которые не используются вообще, могут быть удалены. Применяется только при запутывании.

Это сохраняет неповрежденные имена классов:

 -keepnames class com.somepackage.* 

Удобный совет для всех, кто не хочет, чтобы ProGuard менял любое имя класса:

 # please KEEP ALL THE NAMES -keepnames class ** { *; } 

Таким образом, вы получите читаемые трассировки стека, все еще бросая то, что вам не нужно. 🙂