【发布时间】:2012-06-14 11:46:02
【问题描述】:
假设我需要对应用程序项目和它所依赖的库项目应用相同的规则,我是否需要将 proguard.cfg 的内容从应用程序复制到库项目?
换句话说,应用程序的 proguard.cfg 是否“接管”了它所依赖的所有库项目,还是我必须为每个库项目明确指定规则?
【问题讨论】:
标签: android proguard android-library
假设我需要对应用程序项目和它所依赖的库项目应用相同的规则,我是否需要将 proguard.cfg 的内容从应用程序复制到库项目?
换句话说,应用程序的 proguard.cfg 是否“接管”了它所依赖的所有库项目,还是我必须为每个库项目明确指定规则?
【问题讨论】:
标签: android proguard android-library
库项目本身不运行 ProGuard,因此它们不使用任何配置。
应用程序项目混淆了整个代码库,包括任何引用的库,因此它们需要对应用程序代码和库代码进行适当的配置。
【讨论】:
答案似乎是“否”:Proguard 将混淆代码from the libraries too。
但那是在 2010 年,我们非常清楚规范在不断变化,尤其是在 Android 开发工具方面。所以如果有更权威的答案出现,我会接受的。
【讨论】:
在库项目的build.gradle中,在buildTypes中添加行:consumerProguardFiles 'proguard-rules.pro'为:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro'
}
}
在根项目的build.gradle 中,启用minifyEnabled。
libraray proguard 将起作用。
【讨论】: