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

Gradle 7下如何自定义AAR输出文件名称?

解决Gradle 7.3.3下修改AAR输出文件名的问题

你之前的代码报错是因为Gradle 7+的Android插件内部API已经重构,variant.variantData.outputFactory这个属性已经被移除,旧代码依赖的是未公开的内部接口,版本迭代后自然失效。

针对Android Library项目,Gradle 7+正确修改AAR输出文件名的方式是直接操作变体的outputs,无需触碰内部的variantData。把你android块里的afterEvaluate代码替换成下面这段:

afterEvaluate {
    android.libraryVariants.all { variant ->
        variant.outputs.all { output ->
            def baseName = "${project.name}-${variant.buildType.name}-${variant.versionName}"
            output.outputFileName = "${baseName}.aar"
        }
    }
}

代码说明:

  • android.libraryVariants.all:遍历所有Library构建变体(比如release、debug)
  • variant.outputs.all:处理每个变体的输出产物(这里就是AAR文件)
  • ${variant.versionName}:直接获取你通过androidGitVersion.name()设置的版本名,无需额外处理
  • 最终输出的文件名会是my-sdk-release-1.0.0.aar这类格式(根据你的实际版本名自动变化)

替换后同步Gradle,构建时就能生成带版本名的AAR文件了。

旧代码失效原因:

旧代码里的apkDataList、outputFactory都是Android插件的内部私有API,Google在Gradle插件升级时经常调整这些内部结构,没有向后兼容性保证,所以不能依赖这类写法。官方推荐的公开API是通过variant.outputs修改输出文件名,不同Gradle版本兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:55:19