gradle升级后,之前的打包生成apk并重命名代码出现了问题,经查一共有2个地方要修改,下边代码是修改前:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def environment = 'TUI';
def oldFile = output.outputFile
if (variant.buildType.name == 'release') {
def releaseApkName = 'PORSCHE_'+ defaultConfig.versionName + '_' +releaseTime()+ '_'+environment+'_release.apk'
output.outputFile = new File(oldFile.parent, releaseApkName)
} else {
def debugApkName = 'PORSCHE_' + defaultConfig.versionName + '_' /*+ releaseTime()+ '_'*/+environment+'_debug.apk'
output.outputFile = new File(oldFile.parent, debugApkName)
}
}
}
这个是修改后:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def environment = 'TUI';
def oldFile = output.packageApplication.outputDirectory.toPath()
.relativize(rootDir.toPath()).toFile()
if (variant.buildType.name == 'release') {
def releaseApkName = 'PORSCHE_'+ defaultConfig.versionName + '_' +releaseTime()+ '_'+environment+'_release.apk'
output.outputFileName = new File(oldFile.parent, releaseApkName)
} else {
def debugApkName = 'PORSCHE_' + defaultConfig.versionName + '_' /*+ releaseTime()+ '_'*/+environment+'_debug.apk'
output.outputFileName = new File(oldFile.parent, debugApkName)
}
}
}
第一处:output.outputFile = 改成 output.outputFileName =
第二处:def oldFile = output.outputFile 改成 output.packageApplication.outputDirectory.toPath()
.relativize(rootDir.toPath()).toFile()
否则就会报 Absolute path are not supported when setting an output file name 错误