applicationVariants.all { variant ->
variant.outputs.each { output ->
//noinspection GroovyAssignabilityCheck
output.outputFile = new File(output.outputFile.parent,
output.outputFile.name.replace(".apk", "-${variant.versionName}.apk"))
}
}
需要对以上代码进行澄清。
//noinspection GroovyAssignabilityCheck
?applicationVariants.all {}
还可以做什么?答案 0 :(得分:0)
1是,仅重命名
2不确定。 outputFile是只读的-此代码不适用于最新的Gradle
3不,Gradle不会影响运行时间
4个Gradle动作
答案 1 :(得分:0)
您的上述代码在Android Studio 3.2.1中不起作用。
如果要重命名APK,并要提取proguard映射文件。
applicationVariants.all { variant ->
if (variant.buildType.name == "release") {
def formattedDate = new Date().format('ddMMMyy_HH_mm')
variant.outputs.all { output ->
def formattedName = "${"SampleName" + variant.productFlavors.get(0).name.concat("_")}" +
"${variant.buildType.name[0].toUpperCase().concat("_v")}${variant.versionName.concat("_" + formattedDate)}"
outputFileName = new File("${"v"+variant.versionName.concat("/")}" +formattedName+".apk")
if (variant.getBuildType().isMinifyEnabled()) {
copy {
from variant.mappingFile
into output.outputFile.parent
rename { String fileName ->
formattedName + "_mapping.txt"
}
}
}
}
}
}
上面的代码将为apk提供 / BuildVariant / vVersionName / SampleName_BuildVariant_BuildType_vVersionName_DDMMMYY_HH_mm.apk 。
您还可以设置仅在发行版上执行上述所有操作