Как включить обфускацию ProGuard в Android Studio?
Мне нужно защитить свое приложение, включив Obfuscation Proguard в Android Studio. Я искал процесс его применения, но я не получил четкого решения. Когда я пытаюсь, я всегда получаю сообщение об ошибке. Так может ли кто-нибудь сказать мне четкие шаги, чтобы применить его в моем приложении?
Я делаю это следующими шагами:
-
В Android Studio откройте проект Android.
-
Изменить на проект.
-
Измените следующую строку:
minifyEnable false
до minifyEnable true
-
Установить правила ProGuard (необязательно)
4.1 В представлении проекта выберите файл proguard-rules.pro.
4.2 Добавьте в следующие строки, чтобы сообщить ProGuard не запутывать определенные классы.
-keepclassmembers class com.dom925.xxxx
{
public *
}
Ошибка, которую я получаю, выполнив следующие шаги:
Ошибка: выполнение выполнено для задачи ': app: packageRelease'. Невозможно вычислить хэш D:\Android\Pojectname\app\build\intermediates\classes-proguard\release\classes.jar
Ответы
Ответ 1
Я понял проблему:
Откройте proguard-rules.pro для своего проекта и добавьте его внизу:
-dontwarn java.nio.file.Files
-dontwarn java.nio.file.Path
-dontwarn java.nio.file.OpenOption
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
В основном, как я решил это, я попытался запустить свое приложение в режиме "выпуска" и получил кучу ошибок, похожих на этого парня: https://github.com/square/okio/issues/144
Я в значительной степени следовал тому, что он сказал, и исправил это.
Надеюсь, что это может помочь другим в создании их APK!
посетите более подробно здесь:
Ошибка: не удалось выполнить задачу & # 39;: app: packageRelease & # 39 ;. & GT; Невозможно вычислить хэш /../AndroidStudioProjects/../classes.jar
Ответ 2
Чтобы включить ProGuard в Android Studio.
Ниже приведен пример включения ProGuard по умолчанию в Android Studio.
- Перейдите в файл build.gradle приложения
- включить minifyEnabled true
- включить shrinkResources true, чтобы уменьшить размер APK
proguardFiles getDefaultProguardFile('proguard-android.txt')
включить по умолчанию. Если вы хотите использовать свой собственный файл proguard, используйте приведенные ниже правила.
buildTypes {
release {
debuggable false
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Ссылка с настройками ProGuard для Android и другими настройками доступна по следующим ссылкам:
Для более подробной информации перейдите по этой ссылке
Ответ 3
если вы создаете проект Android с помощью jack, он автоматически выполняет сжатие, запутывание, переупаковку и мультидекс.
Просто добавьте ниже в:
defaultConfig {
jackOptions {
enabled true
}
}
и в типах сборки упомяните файл проекта proguard
:
buildTypes {
release {
// Jack build environment does not require minifyEnabled or shrinkResources.
// Conceptually, the jack compiler consolidates the functionality of javac, ProGuard, and dex in a single conversion step
//minifyEnabled = true
//shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
debug {
...................
}
}
Чтобы отключить обфускацию ProGuard, необходимо добавить строку ниже в ваш файл proguard-project.txt
####No obfuscation
-dontobfuscate