Intereting Posts
Как использовать «adb ppp»? Google-клавиатура испортила мой собственный диапазон Как остановить автоматическую капитализацию в поле ввода текста html на телефоне android / samsung? Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до AppCompat v23 Как получить доступ к кодам статуса MediaMetadataRetriever.setDataSource (…)? Первичный цвет (иногда) прозрачный Как вы определяете задержку звука (AudioTrack) на Android? Сделайте видео в формате TextureView (его части находятся вне (не видно)), используя MediaPlayer Android: определение того, должен ли код находиться в действии или пользовательском представлении Автоматическая прокрутка TextView в android для отображения текста Ошибка HttpPost из-за «Невозможно повторить запрос с неповторяющимся объектом запроса» Как заставить GridView загружать ячейки Андроидный пользовательский список очень медленно при прокрутке Android: переменные доступа, переданные службе Что нужно сделать в Activity / Fragment и ViewModel в MVVM

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

Привет, я пишу приложение для 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 ** { *; } 

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