defaultConfig {
applicationId ""
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
flavorDimensions "versionCode"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
如上:在build.gradle文件中defaultConfig{}里的versionName标签下添加一行
flavorDimensions "versionCode"
版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了。
productFlavors {
wandoujia {
//manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
xiaomi {
//manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"]
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
outputFileName = fileName
}
}
}
如上代码则是在豌豆荚、小米平台上打包的例子,仅供参考。
在gradle 3.0之前的代码则是如下:
productFlavors{
wandoujia{
//manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
xiaomi{
//manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"]
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
需要修改的地方则是
variant.outputs.each改成variant.outputs.all
output.outputFile = new File(outputFile.parent, fileName)改为:outputFileName = fileName