每当我在 Android Studio 中生成签名的 apk 时,默认情况下它的名称为 app-release.apk …
我们可以做任何设置,以便它应该提示并询问我需要分配给 apk 的名称(它在 eclipse 中的方式)
我所做的是 - 在生成 apk 后重命名它。这不会给出任何错误,但有什么真正的方法可以让我对设置进行任何更改以获得提示。
笔记::
在生成apk android studio时提示我选择位置(仅限)
是的,我们可以改变这一点,但需要更多关注
现在将其添加到项目的 build.gradle 中,同时确保您已经检查了项目的 构建变体 ,就像release or Debug 这里我将构建变体设置为一样,release但您也可以选择调试。
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 包的重命名由前面的代码完成,根本不需要任何任务重命名。
希望它会帮助你们。:)