Как использовать ProGuard в Android Studio?
Это мой первый проект в Android Studio и код моего приложения не обфусцирован. Im использует эту конфигурацию в сборке.файл gradle:
Я использую Build > Generate Signed APK... с помощью ProGuard проверено. И, когда я протестировал использование Apk_OneClick.v4.2, мой код совершенно легок для чтения:
пожалуйста, помогите мне. :(
5 ответов
вы, вероятно, на самом деле не подписываете сборку выпуска APK с помощью мастера подписи. Вы можете либо создать релиз APK из командной строки с помощью команды:
./gradlew assembleRelease
или вы можете выбрать вариант выхода из Построить Варианты просмотр и построение его из GUI:
вы можете настроить сборку.файл gradle для реализации proguard. Это может быть модульный уровень или уровень проекта.
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
показанная конфигурация для уровня отладки, но вы можете написать, что у вас есть вкусы сборки, как показано ниже внутри buildTypes:
myproductionbuild{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
лучше иметь отладку с minifyEnabled false
и productionbuild и другие сборки как minifyEnabled true
.
скопируйте правила proguard.txt-файл в корневой папке модуля или проекта как
$YOUR_PROJECT_DIR\YoutProject\yourmodule\proguard-rules.txt
вы можете изменить имя файла, как вы хотите. После настройки используйте один из трех вариантов, доступных для создания сборки в соответствии с buildType
перейдите к задаче gradle в правой панели и найдите
assembleRelease/assemble(#your_defined_buildtype)
в разделе задачи модуляперейдите к варианту сборки в левой панели и выберите сборку из выпадающего списка
перейдите в корневой каталог проекта в Проводнике и откройте cmd / terminal и запустите
Linux ./gradlew assembleRelease or assemble(#your_defined_buildtype)
Windows gradlew assembleRelease or assemble(#your_defined_buildtype)
вы можете найти apk в каталоге модуля / сборки.
больше о конфигурации и расположении файлов proguard доступно по ссылке
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard
попробуйте переименовать свои правила proguard.txt 'файл в' proguard-android.txt "и удалите ссылку на" proguard-rules.txt' в вашем файле gradle. The getDefaultProguardFile(...)
вызов ссылается на другой файл proguard по умолчанию, предоставленный Google, а не в вашем проекте. Поэтому удалите и это, чтобы здесь файл gradle читал:
buildTypes {
release {
runProguard true
proguardFile 'proguard-android.txt'
}
}
другие ответы здесь-отличные ссылки на использование proguard. Тем не менее, я не видел, чтобы обсуждалась проблема, с которой я столкнулся, это был ум. После создания подписанного выпуска .apk, он помещен в /release
папка в вашем приложении, но мое приложение имело apk, которого не было в . Следовательно, я потратил часы на декомпиляцию неправильного apk, задаваясь вопросом, почему мои изменения proguard не влияют. Надеюсь, это кому-то поможет!