Proguard - 也使用模块中的 proguard 文件
Posted
技术标签:
【中文标题】Proguard - 也使用模块中的 proguard 文件【英文标题】:Proguard - also use proguard files from modules 【发布时间】:2015-08-27 07:16:24 【问题描述】:我的项目 build.gradle 如下所示:
android
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig
applicationId "..."
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
buildTypes
release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
compile project(':androKnife')
我的androKnife
模块确实有它自己的proguard 文件。我怎样才能让我的主项目也使用这个文件?
如果我编译一个项目,是否有某种方法可以自动合并所有模块的所有 proguard 文件?模块可以指定它的proguard规则并且项目可以继承它吗?
【问题讨论】:
【参考方案1】:解决方案是将以下行添加到库build.gradle
:consumerProguardFiles 'proguard-rules.pro'
所以我的 androKnife 库如下所示:
apply plugin: 'com.android.library'
android
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
buildTypes
release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles 'proguard-rules.pro'
dependencies
...
【讨论】:
【参考方案2】:所以,主模块proguard
代码,喜欢这样:
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'main_proguard-rules.pro'
谁知道proguardFiles
的内在关系原理?具有相同的proguard代码时自动合并或覆盖?
【讨论】:
以上是关于Proguard - 也使用模块中的 proguard 文件的主要内容,如果未能解决你的问题,请参考以下文章