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

AGP 8.1.0修改APK文件名旧方法失效,求AGP 8+可用API

AGP 8+ 修改APK文件名的替代方案

在AGP 8.1.0 + Gradle 8.2.1环境下,你之前通过强转内部类ApkVariantOutputImpl修改outputFileName的方式失效,核心原因是AGP 8+对内部API的访问进行了限制,内部类不再允许直接强转调用。以下是两种官方推荐的替代方案:

方案一:基于Legacy API(兼容旧写法)

不需要强转内部类,直接通过公开的VariantOutput接口访问outputFileName属性:

android {
    // ... 其他Android配置
    applicationVariants.all { variant ->
        variant.outputs.forEach { output ->
            // 可根据变体信息动态命名,比如加上变体名称
            output.outputFileName = "MyAwesomeName_${variant.name}.apk"
        }
    }
}

方案二:基于Android Components新API(推荐)

使用AGP现代化的androidComponents配置块,这是官方推荐的未来兼容方案:

plugins {
    id("com.android.application")
    kotlin("android")
}

android {
    // ... 其他Android配置
}

androidComponents {
    // 可通过selector筛选特定变体,比如仅配置release版本
    onVariants(selector().withBuildType("release")) { variant ->
        variant.outputs.forEach { output ->
            output.outputFileName.set("MyAwesomeName_${variant.name}.apk")
        }
    }
    // 如果需要配置所有变体,直接用onVariants()即可
    // onVariants { variant -> ... }
}

说明

  • 两种方案均使用AGP公开API,避免了内部API依赖导致的构建不稳定
  • 可根据需求动态拼接文件名,比如加入版本号、构建类型等信息:"MyApp_v${variant.versionName}_${variant.buildType.name}.apk"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 23:22:17