android - 当通过 Android Studio 生成新的 .apk 时,从输出文件夹中删除旧的 .apk

标签 android gradle android-studio-3.0

我有一个生成带有自定义名称的 .apk 的功能。 (应用名称+日期+时间)

gradle 文件中

def getTimestamp() {
    def date = new Date()
    return date.format('_dd-yyyy-MM_HH-mm')
}

并申请名称:

defaultConfig {
    archivesBaseName = "CUSTOM_NAME_$versionName" + getTimestamp()
}

它工作正常,但所有生成的文件都有一个唯一的名称,并且不会从 outputs/apk/debug/ 文件夹中删除。 您能否提出一种自动清理此文件夹的方法。我希望只有最新的文件始终保留在文件夹中。谢谢

最佳答案

是的,有一种方法可以自动执行此操作。

第一步是创建一个 Gradle 任务来清理输出目录:

task cleanOutputDir(type: Delete) {
   delete fileTree(dir: "build/outputs/apk/debug/")
}

在继续之前不要忘记同步 Gradle

之后,您需要配置 Android Studio 以在运行您的应用程序之前执行此任务。为此,请在 Android Studio 顶部单击您的默认构建,然后单击“编辑配置...”

enter image description here

然后,在执行Gradle Task之前添加一个新的:

enter image description here

您将看到一个请求任务配置的对话框,如下所示:

enter image description here

选择你的项目和模块(我有 3 个,通常只有一个),然后开始输入你的 Gradle Task:

enter image description here

选择任务并按确定。然后你将在底部容器中有一个新任务。您需要做的最后一件事是将其移至三个任务的顶部,如图所示:

enter image description here

按“应用”、“确定”,然后运行您的应用程序。首先将删除 outputs/apk/debug 中的所有内容,然后立即开始编译和运行您的应用。

关于android - 当通过 Android Studio 生成新的 .apk 时,从输出文件夹中删除旧的 .apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50627069/

相关文章:

android - java.lang.IllegalArgumentException : Invalid Region. Op - 仅在 Button 后台失败中有 INTERSECT 和 DIFFERENCE

android - 无法访问 Activity 绑定(bind) android

android - 如何更改 googleplaystore url 链接中的应用程序 ID

java - 软键盘上的 Enter 键按下时不会触发事件

android - 创建预构建事件以将文件复制到 Android 应用程序中的 Assets 文件夹

android - 使用多个用户创建的库和依赖项将Android应用程序从Eclipse迁移到Android Studio

android - RecyclerView OnScrollStateChanged() 和 onScrolled()

android - 回到前台时应用程序卡住(Cordova 3 + jquery mobile)

java - 找不到注释处理器 'org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor'

android - Android Studio 3.0 的 DexArchiveMergerException