我最近切换到Android Studio / Gradle,我想知道如何在build.gradle脚本中配置ProGuard。我是Gradle的新手,但我认为配置Proguard任务会是一个好主意(正如Proguard项目文档中所记录的那样。
我想使用'printmapping‘设置将Proguard配置为将映射保存在不同产品风格的不同文件中
task myProguardTask(type: proguard.gradle.ProGuardTask) {
printmapping file("test.txt")
}但是它在任务执行时会崩溃,
Gradle: Execution failed for task ':module:proguardFlavorVariant'.
> proguard.ConfigurationParser.<init>(Ljava/io/File;Ljava/util/Properties;)V在较新版本的Gradle‘android’插件中,Proguard似乎包含在内,我认为这可能就是为什么在Proguard文档中描述的配置Proguard任务不起作用的原因。但我没有找到任何关于如何使用较新的android-gradle-plugin实现此主题的文档。
谢谢你的帮忙!
发布于 2014-02-11 01:50:03
Proguard内置于Android-Gradle插件中,您不需要将其配置为单独的任务。文档位于:
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard
您的口味是否如此不同,以至于您真的想为它们配置不同的ProGuard?我认为在大多数情况下,您可以使用一个配置来覆盖所有这些配置。
编辑:
如果您确实想针对不同的风格更改ProGuard规则,Android Gradle DSL允许您这样做。文档中的示例说明了如何执行此操作:
android {
buildTypes {
release {
// in later versions of the Gradle plugin runProguard -> minifyEnabled
minifyEnabled true
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
productFlavors {
flavor1 {
}
flavor2 {
proguardFile 'some-other-rules.txt'
}
}
}这应该可以处理您的用例,除非您正在寻找一种方法,让它根据口味名称自动确定Groovy值,而不必手动设置它;您可以通过一些定制的proguardFile脚本来实现。
https://stackoverflow.com/questions/21672409
复制相似问题