在Gradle中生成具有声明名称的APK,没有任何后缀

时间:2017-10-24 18:31:47

标签: android gradle android-gradle

我知道可以通过在Gradle构建文件中使用以下命令来指定APK名称:

setProperty("archivesBaseName", "something")

这里有很多问题可以解决这个问题。但这样做也会导致APK具有附加名称的风味和构建变体。因此,使用上面的命令会导致名为something-dev-debug.apk的APK。

有没有办法在不附加任何后缀的情况下完全指定文件名。我已经有了这样的风格:

//...
productFlavors {
    dev {
        applicationId "com.myapp.dev"
        setProperty("archivesBaseName", applicationId)
    }
//...

理想情况下,我想制作名为com.myapp.dev.apk的APK,不带任何额外的后缀或版本号。这可能吗?

1 个答案:

答案 0 :(得分:1)

似乎不应该使用setPropery来完成此操作。您可以通过将以下代码添加到gradle文件中android { }部分的末尾来定义更改输出文件名的处理程序作为最后一步:

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def file = output.outputFile
        def appId = variant.applicationId
        def fileName = appId +".apk"
        output.outputFile = new File(file.parent, fileName)
    }
}