默认情况下,Android Studio中的Gradle构建命名为.apk文件app-release.apk。对应用程序build.gradle文件进行了一些小的更改,可以将.apk名称更改为<app name>-release-<version>.apk。
需要在app的目录下面修改build.gradle文件。
第一步是将project.archivesBaseName设置为您的应用程序名称。
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
versionCode 1
versionName "1.0.0"
project.archivesBaseName = "AppName"
}
第二步是在该Gradle文件的buildTypes部分添加如下代码:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
applicationVariants.all { variant ->
variant.outputs.each{ output ->
output.outputFile = new File(output.outputFile.parent,output.outputFile.name.replace(".apk","-" + defaultConfig.versionName + ".apk" ))
}
}
}
}
之前上面那么写是没问题的,当我更新android studio 3.0的时候,再重新打包的时候,就出现了问题,就会报下面的错误;
Error:(23, 0) Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
简单来说就是我们之前用的outputFile属性是只读的,不能再使用了。所以这里我又换了一种写法:
applicationVariants.all{
variant->variant.outputs.all{
//android studio3.0之前的写法
// output->output.outputFile=new File(output.outputFile.parent,output.outputFile.name.replace(".apk","-"+defaultConfig.versionName+".apk"))
//android studio3.0的写法
outputFileName = "${project.archivesBaseName}-${defaultConfig.versionName}.apk"
}
}
这就是重命名.apk文件所需要的全部。
//多渠道打包
productFlavors{
test{}
}
//打包类型
buildTypes{
//debug版本
debug{}
//release版本
release{}
}
这里需要注意一点就是,如果我们用了productFlavors{}属性,那咱们就不用去添加defaultConfig.versionName了,因为如果添加了,打出包的名称就会多一个versionName。
例如:
没有使用productFlavors{}情况下:AppName-1.0.0.apk
使用productFlavors{}情况下:AppName-test-release-1.0.0.apk,如果您加了defaultConfig.versionName,那打出的包就会是AppName-test-release-1.0.0-1.0.0.apk。
修改应用包名的全部内容就这么多了。
快乐生活!快乐工作!快乐编程!