Обновление от ответа zatziky для текущей Android Gradle Plugin (v1.0 +) и плагин Dexguard (6.1. +)
Чтобы создать переключатель плагинов dexguard, вы можете сделать следующее:
В корне build.gradle
добавить свойство к вашему ext
(или создать его, если это еще не сделано, see here why you would do that)
ext {
enableDexGuardPlugin = false
....
}
В вашем приложении сборки.Gradle добавить плагин, как это:
apply plugin: 'com.android.application'
if(rootProject.ext.enableDexGuardPlugin) {
apply plugin: 'dexguard'
}
и если у вас есть проекты библиотеки сделать это как этот
apply plugin: 'com.android.library'
if(rootProject.ext.enableDexGuardPlugin) {
apply plugin: 'dexguard'
}
Удалить все Proguard конфиги из ваших отладочных-типов (особенно getDefaultDexGuardFile('dexguard-release.pro')
), если вы не нуждаетесь в них , Unfortunatly по крайней мере LIB проектов, все стро-типы строят даже в assembleDebug, так что вы должны предоставить заглушки для getDefaultDexGuardFile
как zatziky сказал:
private File getDefaultDexGuardFile(String name) { new File(name) }
Вы можете добавить это в корне build.gradle
так каждый сценарий есть это.
Теперь, если вы ожидали огромных преимуществ от эффективности, вы можете быть разочарованы. Ключ должен отключить ВСЕ minifyEnabled
на отладочных сборках, так как, как уже говорилось ранее, андроид не работает и строит все типы сборки (по крайней мере, с помощью libs). Вы можете использовать свойство выше для него: enableDexGuardPlugin
release {
...
minifyEnabled rootProject.ext.enableDexGuardPlugin
...
}
Примечания: этот ответ является устаревшим, поскольку dexguard в настоящее время не распространяется андроид плагина, но используется как автономные: 'применить плагин:«»com.android.application применять плагин: 'dexguard'' – for3st
@ for3st Привет, человек, надеюсь, что ваше решение работает. Я отметил его как Accepted. – zatziky