You need to enable JavaScript to run this app. AGP 7.0.0+版本中registerGeneratedResFolders的替代方案是什么?
优惠活动
大模型
产品
解决方案
定价
更多

AGP 7.0.0+版本中registerGeneratedResFolders的替代方案是什么?

AGP 7.0 自定义生成资源目录适配方案

直接通过新版Variant API提供的资源源集扩展方法即可完成适配,无需依赖仅支持values类型资源的addResValue方法,适配代码如下:

androidComponents {
    onVariants { variant ->
        // 构造输出路径,可从variant对象获取对应风味、构建类型信息
        val outputPath = "$buildDir/generated/res/foo/${variant.flavorName}/${variant.buildType}"
        val outputDir = project.file(outputPath)

        // 注册你的自定义资源生成任务,配置任务输出内容到outputDir
        val resourceGenTask = tasks.register(/* 你的任务配置逻辑 */)

        // 将生成目录接入构建资源流程,支持raw、drawable等所有资源类型
        variant.sources.res?.addGeneratedSourceDirectory(
            resourceGenTask,
            { outputDir }
        )
    }
}

特殊场景适配

如果你的资源生成任务没有通过Gradle Managed Property声明输出,可使用以下简化写法:

val outputs = project.files(outputDir).builtBy(resourceGenTask)
variant.sources.res?.addStaticSourceDirectory(outputDir.absolutePath)

关键说明

  • 该逻辑不需要包裹在afterEvaluate代码块中,androidComponents.onVariants回调本身会在AGP完成基础配置后执行,无配置时序问题
  • 接入后生成的资源会自动参与后续资源合并、编译全流程,和旧版registerGeneratedResFolders效果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 23:27:05