前段时间我为gradle编写了此脚本代码段,以便更改Android Studio生成的apk的名称。它使用以下数据重命名apk:
在build.gradle中:
android {
...
buildTypes {
release {
minifyEnabled true
...
}
debug {
minifyEnabled false
}
}
productFlavors {
prod {
applicationId "com.feraguiba.myproject"
versionCode 3
versionName "1.2.0"
}
dev {
applicationId "com.feraguiba.myproject.dev"
versionCode 15
versionName "1.3.6"
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
def project = "myProject"
def SEP = "_"
def flavor = variant.productFlavors[0].name
def buildType = variant.variantData.variantConfiguration.buildType.name
def version = variant.versionName
def date = new Date();
def formattedDate = date.format('ddMMyy_HHmm')
def newApkName = project + SEP + flavor + SEP + buildType + SEP + version + SEP + formattedDate + ".apk"
output.outputFile = new File(output.outputFile.parent, newApkName)
}
}
}
如果你今天(16-10-2016)在10:47编译,你会得到以下文件名,具体取决于你选择的风味和构建类型:
注意:未对齐版本的apk名称仍然是默认名称。
虽然重命名工作正常并且使用正确的名称生成apk,但问题是当我单击"运行项目"时,Android Studio有时无法在设备中安装apk。它抱怨以下消息:
磁盘上不存在APK文件C:\ Users \ xxx \ AndroidStudioProjects \ xxx \ build \ outputs \ apk \ myProject_dev_debug_1.3.6_191016_1047.apk。
安装APK时出错
为什么AS搜索" myProject_dev_debug_1.3.6_ 19 1016_1047.apk"当生成的是" myProject_dev_debug_1.3.6_ 26 1016_1047.apk" ???我错过了什么,我不知道是什么。
做一个"清洁项目"或者一个"重建项目"没有解决问题。我找到的唯一解决方法是修改脚本以稍微更改apk的名称。
注意:我正在使用 Android Studio 2.1.3 with gradle 2.1.3 。
答案 0 :(得分:0)
Gradle-fury有一些钩子来命名工件+变体+调试/发布+版本。可能值得借用或直接使用它。
https://github.com/gradle-fury/gradle-fury/blob/master/gradle/maven-support.gradle
免责声明,我正在努力