我最近切换到 Android Studio / Gradle,我想知道如何在 build.gradle 脚本中配置 ProGuard。我是 Gradle 新手,但我认为配置 Proguard 任务将是一个好主意(如 Proguard 项目文档中所述)。
我想配置 Proguard 使用“printmapping”设置将映射保存在不同的文件中,以适应不同的产品风格
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 执行此操作的主题的文档。
感谢您的帮助!
Proguard 内置于 Android-Gradle 插件中,您无需将其配置为单独的任务。文档位于:
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard
您的风格是否如此不同,以至于您真的想要为它们提供不同的 ProGuard 配置?我认为在大多数情况下,您可以拥有一个可以涵盖所有这些的配置。
EDIT:
如果您确实想更改不同风格的 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'
}
}
}
这应该可以处理您的用例,除非您正在寻找一种方法让它根据风味名称自动确定 proguardFile 值,而无需手动设置;您可以通过一些自定义 Groovy 脚本来做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)