小编典典

“app-release.apk”如何更改这个默认生成的apk名称

all

每当我在 Android Studio 中生成签名的 apk 时,默认情况下它的名称为 app-release.apk …

我们可以做任何设置,以便它应该提示并询问我需要分配给 apk 的名称(它在 eclipse 中的方式)

我所做的是 - 在生成 apk 后重命名它。这不会给出任何错误,但有什么真正的方法可以让我对设置进行任何更改以获得提示。

笔记::

在生成apk android studio时提示我选择位置(仅限)在此处输入图像描述


阅读 222

收藏
2022-07-17

共1个答案

小编典典

是的,我们可以改变这一点,但需要更多关注

看这个

现在将其添加到项目的 build.gradle 中,同时确保您已经检查了项目的 构建变体 ,就像release or Debug
这里我将构建变体设置为一样,release但您也可以选择调试。

    buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig getSigningConfig()
                applicationVariants.all { variant ->
                    variant.outputs.each { output ->
                        def date = new Date();
                        def formattedDate = date.format('yyyyMMddHHmmss')
                        output.outputFile = new File(output.outputFile.parent,
                                output.outputFile.name.replace("-release", "-" + formattedDate)
    //for Debug use output.outputFile = new File(output.outputFile.parent,
   //                             output.outputFile.name.replace("-debug", "-" + formattedDate)
                        )
                    }
                }
            }
        }

你可以用不同的方法来做这样的

 defaultConfig {
        applicationId "com.myapp.status"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        setProperty("archivesBaseName", "COMU-$versionName")
    }

在 build.gradle 中使用 Set 属性方法, 并且不要忘记在运行项目之前同步 gradle 希望它会解决您的问题 :)

谷歌更新最近添加了一种处理此问题的新方法 您现在可以根据风味或变体输出重命名您的构建 //以下来源来自开发人员 android
文档
有关更多详细信息,请按照上述文档链接
使用 Variant API 操作变体输出已损坏使用新插件。 它仍然适用于简单的任务,例如在构建期间更改 APK 名称,如下所示:

// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time鈥�
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

重命名 .aab 捆绑包David Medenjak
很好地回答了这个问题

tasks.whenTaskAdded { task ->
    if (task.name.startsWith("bundle")) {
        def renameTaskName = "rename${task.name.capitalize()}Aab"
        def flavor = task.name.substring("bundle".length()).uncapitalize()
        tasks.create(renameTaskName, Copy) {
            def path = "${buildDir}/outputs/bundle/${flavor}/"
            from(path)
            include "app.aab"
            destinationDir file("${buildDir}/outputs/renamedBundle/")
            rename "app.aab", "${flavor}.aab"
        }

        task.finalizedBy(renameTaskName)
    }
//@credit to David Medenjak for this block of code
}

是否需要以上代码

我在最新版本的 android studio 3.3.1 中观察到的

.aab 包的重命名由前面的代码完成,根本不需要任何任务重命名。

希望它会帮助你们。:)

2022-07-17