与gradle
4.4
一样,无法更改APK输出文件的路径,我们现在不能从文档中对apk的输出使用绝对路径 -在构建时修改变体输出可能不起作用,所以我在SO上搜索并找到了一个解决方案,我们可以在构建后将apk
复制到我们想要的位置,但我对gradle脚本没有太多想法,我是无法调用复制任务。谁能帮我。
我的毕业生代码:
android {
................
android.applicationVariants.all { variant ->
variant.outputs.all {
if (variant.name.contains("Release")) {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
assembleRelease {
dependsOn copyDocs
}
}// end of android brace
task copyApk(type: Copy) {
from outputFileName
into file("${project.buildDir}/outputs/apk")
}
}
通过这种方式,我得到错误:
无法获取任务的未知属性"输出文件名">
知道如何将apk文件复制到另一个路径吗?谢谢。
android.applicationVariants.all { variant ->
variant.outputs.all {
println variant.name
if (variant.name.contains("release")) {
outputFileName = new File("../", "${variant.name}-${variant.versionName}.apk")
println outputFileName
}
}
}
并删除
task copyApk
我可以通过在gradle
文件中运行脚本来做到这一点copy
如下所示:
android.applicationVariants.all { variant ->
variant.outputs.all {
copy {
from file("${project.buildDir}/outputs/apk/" + variant.name + "/release/${outputFileName}")
into file("${project.buildDir}/outputs/apk/")
}
delete file("${project.buildDir}/outputs/apk/" + variant.name) // i don't want apk on this location so after successful copy i am deleting it
}
}