之前遇到过一个问题,apk中有一个so无法确定其路径,是由哪个依赖引入的,网上查询一番后这里记录一下。build.gradle中添加如下任务
//列出所有包含有so文件的库信息
tasks.whenTaskAdded { task ->
if (task.name=='mergeDebugNativeLibs') { //如果是有多个flavor,则用 mergeFlavorDebugNativeLibs的形式
task.doFirst {
println("------------------- find so files start -------------------")
println("------------------- find so files start -------------------")
println("------------------- " +
" -------------------")
it.inputs.files.each { file ->
printDir(new File(file.absolutePath))
}
println("------------------- find so files end -------------------")
println("------------------- find so files end -------------------")
println("------------------- find so files end -------------------")
}
}
}
def printDir(File file) {
if (file != null) {
if (file.isDirectory()) {
file.listFiles().each {
printDir(it)
}
} else if (file.absolutePath.endsWith(".so")) {
println "find so file: $file.absolutePath"
}
}
}
查看编译输出日志,就能够看到so是从哪个依赖路径添加的了。