如何在Gradle插件中获取配置的assets文件夹路径
获取Android Gradle插件中配置后的Assets文件夹路径
在新版Android Gradle插件(AGP)中,旧的SourceSets API已被废弃,取而代之的是基于构建变体的公共API。要获取所有配置后的assets文件夹路径,按以下步骤操作:
获取Android扩展组件
首先从Project对象中拿到ApplicationExtension(如果是库插件则用LibraryExtension),这是AGP的核心配置入口:import com.android.build.api.dsl.ApplicationExtension def androidExtension = project.extensions.getByType(ApplicationExtension)遍历构建变体
每个变体(如debug、release或自定义变体)可能有独立的assets配置,因此需要遍历所有变体:androidExtension.applicationVariants.all { variant -> // 处理当前变体的assets路径 }获取变体的Assets源目录
通过变体的sources属性获取assets的源集合,再提取所有配置的目录路径:def assetSources = variant.sources.assets.get() Set<File> assetDirs = assetSources.srcDirs // 遍历输出所有assets路径 assetDirs.each { dir -> println "Assets directory: ${dir.absolutePath}" }
关键说明
- 这种方式能自动捕获所有配置的assets路径,包括默认的
src/main/assets,以及用户在build.gradle中自定义的路径(比如src/main/custom-assets),甚至是针对特定变体的配置。 - 全程使用AGP的公共API,避免依赖内部属性,保证插件在AGP新版本中的兼容性。
内容的提问来源于stack exchange,提问作者Lactose
相关产品推荐
相关产品推荐

