You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Gradle中为Build APK(s)配置额外的APK生成路径?

Gradle配置APK额外输出到指定路径方案

可以实现,我们可以通过给构建任务追加后置复制操作,在不修改默认构建输出路径的前提下,额外生成一份APK到你指定的目标路径,配置步骤如下:


完整配置代码

直接替换你app模块build.gradle文件中现有的applicationVariants相关代码即可:

android {
    // 原有android域下的其他配置(defaultConfig、buildTypes等)全部保持不变
    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            // 你原有修改输出文件名的逻辑保持不变
            def appVersionName = "company_name_${versionName}"
            switch (variant.buildType.name) {
                case "debug":
                    outputFileName = "${appVersionName}_debug.apk"
                    break
                case "release":
                    outputFileName = "${appVersionName}_release.apk"
                    break
            }
        }

        // 新增:构建完成后自动复制APK到目标路径
        variant.assembleProvider.get().doLast {
            // 只需要debug版本额外复制保留该判断,需要全版本都复制直接删除判断即可
            if (variant.buildType.name == "debug") {
                def sourceApk = variant.outputs.first().outputFile
                // 目标路径:对应你需要的app/debug_apk目录,可自行修改
                def targetDir = rootProject.file("app/debug_apk")
                // 自动创建不存在的目标文件夹,无需手动新建
                if (!targetDir.exists()) {
                    targetDir.mkdirs()
                }
                // 执行复制操作
                copy {
                    from sourceApk
                    into targetDir
                }
            }
        }
    }
}

补充说明

  • 该配置不会影响原有默认构建逻辑,app/build/outputs/apk路径下的APK依然会正常生成,同时会额外复制一份到你指定的目标路径
  • 如果你需要使用绝对路径,直接把rootProject.file("app/debug_apk")替换为你的绝对路径即可,例如file("C:\\project\\app\\debug_apk")
  • 若使用Gradle 6.0及以下旧版本,把variant.assembleProvider.get().doLast替换为variant.assemble.doLast即可
  • 配置完成后同步Gradle,重新执行assembleDebug任务即可生效

内容的提问来源于stack exchange,提问作者Eugene H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:45:05