android {
afterEvaluate {
tasks.matching {
// println "matchingName:"+it.name
it.name.startsWith('merge')
}.each { task ->
task.doLast {
def firstFlavorName = ""
Pattern pattern = Pattern.compile("merge(\\w+(Release|Debug)NativeLibs")
Matcher matcher = pattern.matcher(task.name)
if (matcher.find()) {
println("deleteSoLibrary task start")
println("getCurrentVariant:" + matcher.group(1))
productFlavorsName = matcher.group(1)
deleteSoLibrary(excludeSo)
} else {
println "NO MATCH FOUND"
}
println "flavorName: $productFlavorsName"
}
}
}
def deleteSoLibrary(boolean excludeSo) {
def exculdeSoArray = ['libxul.so']//这里定义需要提出的so包
println("deleteSoLibrary task run")
println(getRootProject().findAll())
if (excludeSo) {
def file = new File("${projectDir}/build/intermediates/merged_native_libs/")
def soDir = new File(file.listFiles()[0].path + "/out/lib")
println "sodir:" + soDir.path
if (soDir.exists()) {
soDir.listFiles().each { libFile ->
if (libFile.isDirectory()) {
libFile.listFiles().each { target ->
// 可对文件名进行检索,以删除特定的so文件
if (exculdeSoArray.contains(target.name)) {
target.delete()
target.createNewFile()
println("delete ${libFile.name} ${target.name}")
}
}
}
}
} else {
println("There is no so library")
}
}
}
03-22
6508
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-10
647
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-02