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

升级Android Gradle Plugin至8.2.0报错:找不到archivesBaseName()方法

AGP 8.2.0 移除archivesBaseName()后的替代方案

方案1:使用Android Components API(官方推荐)

AGP 8.0+官方推荐通过Components API配置变体输出,更适配Gradle增量构建逻辑,示例代码如下:

androidComponents {
    onVariants(selector().all()) { variant ->
        variant.outputs.each { output ->
            variant.versionName.map { versionName ->
                def baseName = "${rootProject.name.replaceAll(" ", "")}-v${versionName}"
                output.outputFileName.set("${baseName}.apk")
                // 生成App Bundle时改为 "${baseName}.aab"
            }
        }
    }
}

通过variant.versionName.map()安全获取版本号,可避免直接调用get()可能引发的构建时序问题。

方案2:通过applicationVariants配置(兼容旧写法)

若习惯传统变体遍历方式,可继续使用applicationVariants修改输出文件名,AGP 8.x版本中仍可正常运行:

android {
    // 保留原有其他配置项
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def baseName = "${rootProject.name.replaceAll(" ", "")}-v${variant.versionName}"
            output.outputFileName = "${baseName}.apk"
        }
    }
}

方案3:针对Library模块的配置

如果是生成AAR文件的Android Library模块,可使用以下方式修改输出名称:

androidComponents {
    components.all { component ->
        component.outputs.each { output ->
            component.versionName.map { versionName ->
                def baseName = "${rootProject.name.replaceAll(" ", "")}-v${versionName}"
                output.outputFileName.set("${baseName}.aar")
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Isak The Hacker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:12:12