完美处理 Android App 的 apk 输出路径与文件名

实现代码

复制代码
buildTypes {

        // ...
    
        
        applicationVariants.all {
            variant ->
                variant.outputs.all {
                    Calendar calendar = Calendar.getInstance(Locale.CHINA);
                    def buildDate = String.format(Locale.CHINA, "%04d%02d%02d", calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH))
                    def versionName = variant.versionName
                    def versionCode = variant.versionCode
                    //项目名-版本名-版本号-release/debug.apk
                    if (variant.buildType.name.equals('release')) {
                        variant.getPackageApplication().outputDirectory = new File("ApkOutputs/release")
                        outputFileName = "${rootProject.getName()}-v${versionName}-${versionCode}-${buildDate}-release.apk"
                    } else {
                        variant.getPackageApplication().outputDirectory = new File("ApkOutputs/debug")
                        outputFileName = "${rootProject.getName()}-v${versionName}-${versionCode}-${buildDate}-debug.apk"
                    }
                }
        }
    }

效果

相关推荐
前端snow11 分钟前
ai agent --- 实现 openclaw 定时间效果
前端
一池秋_28 分钟前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
惜离殇31 分钟前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
码云之上32 分钟前
换模型之后,Chatbot 为什么要自己做 compact?
前端·agent·前端工程化
星栈1 小时前
自定义 UI-UX-Pro-Max 的 CSV 知识库,把 AI 生成的后台拉回行业该有的样子
前端·agent·weui
研☆香1 小时前
简单的图片上传 删除 预览
前端
心平气和量大福大1 小时前
android-控件-搜索框SearchView
android·gitee
2601_962177131 小时前
【MySQL篇】聚合查询,联合查询
android·java·mysql
ITresearchGuest1 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·人工智能·信息可视化
壮哥_icon1 小时前
【Android】批量 VectorDrawable 动态分别修改 fillColor 和 strokeColor 的踩坑与终极解决方案
android