如何从继承的 proguardFiles 中删除 proguard 文件?
How to remove proguard file from inherit proguardFiles?
我有以下 2 个构建类型:
debug {
...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'proguard-rules-dont-obfuscate.pro'
...
}
inhouse.initWith(buildTypes.debug)
inhouse {
...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
println proguardFiles.toString()
...
}
我希望我的内部 buildType 继承自 debug(用于其他属性),但不包含混淆文件 proguard-rules-dont-obfuscate.pro,如上所示。不幸的是,在打印出 proguardFiles 之后,它仍然有 proguard-rules-dont-obfuscate.pro,即使我没有包含它。
我发现 proguardFiles 只在内部执行 proguardFiles.addAll。为了不包含来自继承的 buildTypes 的 proguard 文件,我需要清除 proguardFiles 列表。幸运的是,我找到了 setProguardFiles 方法,它在设置之前执行 proguardFiles.clear() 。所以解决方案是在添加新的 proguard 文件之前添加 setProguardFiles(empty)。
inhouse.initWith(buildTypes.debug)
inhouse {
...
List empty = new ArrayList<String>()
setProguardFiles(empty)
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
println proguardFiles.toString()
...
}
我有以下 2 个构建类型:
debug {
...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'proguard-rules-dont-obfuscate.pro'
...
}
inhouse.initWith(buildTypes.debug)
inhouse {
...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
println proguardFiles.toString()
...
}
我希望我的内部 buildType 继承自 debug(用于其他属性),但不包含混淆文件 proguard-rules-dont-obfuscate.pro,如上所示。不幸的是,在打印出 proguardFiles 之后,它仍然有 proguard-rules-dont-obfuscate.pro,即使我没有包含它。
我发现 proguardFiles 只在内部执行 proguardFiles.addAll。为了不包含来自继承的 buildTypes 的 proguard 文件,我需要清除 proguardFiles 列表。幸运的是,我找到了 setProguardFiles 方法,它在设置之前执行 proguardFiles.clear() 。所以解决方案是在添加新的 proguard 文件之前添加 setProguardFiles(empty)。
inhouse.initWith(buildTypes.debug)
inhouse {
...
List empty = new ArrayList<String>()
setProguardFiles(empty)
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
println proguardFiles.toString()
...
}