Android Studio构建生成文件混入Java目录,多Flavor下如何修复?
解决Dagger/Hilt生成目录混入Java源目录的问题
检查Gradle的sourceSets配置
大概率是模块的build.gradle(或build.gradle.kts)里,sourceSets不小心把build生成目录包含进了源码集合。打开模块的Gradle配置文件,找到android块下的sourceSets,确保只指定src/main、src/user、src/admin这类源码目录,不要包含build开头的路径。
示例KTS配置:android { sourceSets { getByName("main") { java.srcDirs("src/main/java") res.srcDirs("src/main/res") } getByName("user") { java.srcDirs("src/user/java") res.srcDirs("src/user/res") } getByName("admin") { java.srcDirs("src/admin/java") res.srcDirs("src/admin/res") } } }若发现包含
build目录的配置,直接删除即可。清理并重建项目
执行命令清理构建缓存:# macOS/Linux ./gradlew clean # Windows gradlew clean之后重新构建目标变体:
./gradlew assembleUserDebug再点击Android Studio顶部的
File -> Sync Project with Gradle Files,让IDE同步最新配置。切换视图手动标记排除目录
- 把Android Studio的项目视图从默认的
Android模式切换到Project Files模式,这样能看到所有目录(包括build文件夹)。 - 找到
build目录下的dagger、hilt_aggregated_deps等文件夹,右键选择Mark Directory as -> Excluded。 - 切换回
Android模式,这些生成目录就不会再混入Java目录显示了。
- 把Android Studio的项目视图从默认的
验证Hilt插件配置
确保Hilt的Gradle插件配置正确:- 模块build.gradle中启用插件:
plugins { id("com.android.application") id("dagger.hilt.android.plugin") kotlin("android") } - 项目根build.gradle中添加classpath:
buildscript { dependencies { classpath("com.google.dagger:hilt-android-gradle-plugin:2.44") } }
建议使用Hilt的最新稳定版本,避免旧版本的路径生成bug。
- 模块build.gradle中启用插件:
内容的提问来源于stack exchange,提问作者Captain Jacky
相关产品推荐
相关产品推荐

