先上完整代码:
buildTypes {
//正式
release {
lintOptions {
checkReleaseBuilds false
abortOnError false
}
//调试
buildConfigField "boolean", "IS_DEBUG", "false"
//日志
buildConfigField "boolean", "IS_LOG", "false"
//异常模式
buildConfigField "boolean", "IS_CATCH", "true"
buildConfigField "int", "URL_CONFIG", "888888"
//混淆
minifyEnabled false
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//自定义包名输出格式
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//GW_2_V1.0.1_20190626.apk
def fileName = "GW_${defaultConfig.versionCode}_v${defaultConfig.versionName}_${releaseTime()}.apk"
//根据自己目录配置
def parent = "../../../项目/升级包/release/"
outputFileName = new File(parent, fileName)
}
}
}
}
//测试
debug {
//调试
buildConfigField "boolean", "IS_DEBUG", "true"
//日志
buildConfigField "boolean", "IS_LOG", "true"
//异常模式
buildConfigField "boolean", "IS_CATCH", "false"
buildConfigField "int", "URL_CONFIG", "999999"
//混淆
minifyEnabled false
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
static def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("Asia/Shanghai"))
}
里面就下面这句代码很重要
//自定义包名输出格式
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//GW_2_V1.0.1_20190626.apk
def fileName = "GW_${defaultConfig.versionCode}_v${defaultConfig.versionName}_${releaseTime()}.apk"
//根据自己目录配置
def parent = "../../../项目/升级包/release/"
outputFileName = new File(parent, fileName)
}
}
}
就注意一点,就是这个路径 def parent = "../../../项目/升级包/release/" 前面的../../../ 好像不能改,提示用绝对路径报错,至于为什么"我也不敢说,我也不敢问",后面就是你除根目录的绝对路径。
我亲测可用,如有不一样的可以讨论.