Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322

Как настраивать Proguard

28.06.2017, 16:26. Показов 2226. Ответов 7

Студворк — интернет-сервис помощи студентам
Приветствую!

Есть необходимость защитить приложение от декомпиляции, для этого хочу использовать Proguard. Почитал статью на оф. сайте, и другие источники, понял, что вещь надежная и востребованная. Непонятным осталось как его настраивать. Есть файл proguard-rules.pro в нем весь текст закомментирован.
На текущий момент при создании подписанного APK возникает ошибка:

Error:Execution failed for task ':app:transformClassesAndResourcesWithPr oguardForRelease'.
> Job failed, see logs for details


Видимо нужно настроить какие-то правила для Proguard.
Если кто-то пользовался этим инструментов, прошу поделиться информацией.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.06.2017, 16:26
Ответы с готовыми решениями:

Как настроить ProGuard в IDEA?
Сабж. Искал, читал, но до конца так и не понял..

proguard
Пытаюсь сделать обфускацию приложения при помощи Proguard. В теории вроде всё просто, на практике - никак не выходит. Для работы...

Proguard и NullPointerException
Задействуйте! Надеюсь кто-то поможет. Проблема такая. В release версии ( с использованием proguard) приложения возникает ошибка ...

7
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
28.06.2017, 16:53
Цитата Сообщение от Hank Посмотреть сообщение
Почитал статью на оф. сайте
Почитай ещё раз. Если очень грубо, то все классы, что попадаются в ошибке надо указать в правилах командой -keep или -keepclassmembers, например, ну в самом крайнем случае - -dontwarn
Примеры с комментариями:
# For native methods, see http://proguard.sourceforge.ne... tml#native
-keepclasseswithmembernames class * {
native <methods>;
}

# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.ne... html#beans
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}

# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

# For enumeration classes, see http://proguard.sourceforge.ne... umerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
0
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
28.06.2017, 17:14  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
то все классы, что попадаются в ошибке
а где посмотреть какие классы попадаются в ошибке? У меня на закладке Message в студии только одна ошибка и целая простыня warning`ов.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
28.06.2017, 19:16
Вот в warning'ах и ищи эти ошибки, там вроде недвусмысленно написано.
0
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
29.06.2017, 10:15  [ТС]
Куча вот таких warning`ов присутствует в списке

Warning:com.google.common.base.Absent: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Ascii: can't find referenced class javax.annotation.CheckReturnValue
Warning:com.google.common.base.CaseForma t$StringConverter: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.CharMatch er: can't find referenced class javax.annotation.CheckReturnValue


Непонятно имеют они отношение к финальной ошибке или нет.
Можете на примере этих строк сказать, что нужно сделать, чтобы исправить эти предупреждения? Что нужно в proguard-rules.pro добавить?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
29.06.2017, 10:38
Все ошибки исправляются индивидуально, у многих либ, особенно гугловских, в доках есть оптимальные правила. Если оптимальность не шибко важна, то:
-dontwarn com.google.common.base.Absent
или
-dontwarn com.google.common.base.**
0
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
29.06.2017, 18:02  [ТС]
Добавил правила, как вы сказали, предупреждения пропали кроме одного. Теперь в message валится следующее:
Warning:Exception while processing task java.io.IOException: Can't write [C:\Android\App\Vintegra\app\build\interm ediates\transforms\proguard\release\jars \3\1f\main.jar] (Can't read [C:\Users\grigoriev\.gradle\caches\module s-2\files-2.1\com.google.code.gson\gson\2.7\751f54 8c85fa49f330cecbb1875893f971b33c4e\gson-2.7.jar(;;;;;;**.class)] (Duplicate zip entry [com/google/a/a/a.class == gson-2.7.jar:com/google/gson/annotations/Expose.class]))
Error:Execution failed for task ':app:transformClassesAndResourcesWithPr oguardForRelease'.
> Job failed, see logs for details


Как это исправить ума не приложу, весь день мучаюсь.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
30.06.2017, 00:02
Clean пробовал?

Добавлено через 1 минуту
Беглый поиск:
https://stackoverflow.com/ques... te-or-read
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2017, 00:02
Помогаю со студенческими работами здесь

ProGuard ошибки
Делаю компиляцию приложения, компилится хорошо, но в процессе работы приложения вылазят ошибки 01-11 22:51:24.745 2552-2747/com.app...

ProGuard на IntelliJ IDEA
Кто нибудь пробовал в IDEA использовать ProGuard? В project.properties добавил: proguard.config=proguard-project.txt В окне...

ProGuard сопротивление компилированию(
Народ всем привет. Уже три дня бьюсь с ProGuard все время выходит такая ошибка: Warning:okio.DeflaterSink: can't find referenced class...

Свое правило для Proguard
Как создать правило для Proguard? т.е. так чтобы он шифровал только нужные мне файлы...

Приложение не запускается после обработки Proguard
у меня в манифесте стоит minifyenabled true, ну то есть абфускация в build.gradle(в режиме релиз включается). Все отлично работало до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru