配置Dagger-Hilt后生成多余内部包,如何避免其创建?
关于Dagger-Hilt生成内部包的处理方案
首先明确:这些以dagger.hilt.internal.aggregatedroot.codegen、hilt_aggregated_deps为代表的生成包,是Hilt实现依赖注入的核心组成部分——它们负责聚合依赖信息、处理注解逻辑、生成注入代码,无法完全禁止生成。不过可以通过以下方式优化,避免它们干扰你的业务代码视图或目录结构:
调整生成文件的输出目录
在Android项目的Gradle配置中,指定Hilt注解处理器的输出路径,把这些内部生成文件统一放到build目录下,和业务源码彻底分离。示例配置如下:android { defaultConfig { javaCompileOptions { annotationProcessorOptions { arguments += ["hilt.generated.dir": "$buildDir/generated/hilt"] } } } }配置后,所有Hilt生成的内部文件都会存放在
build/generated/hilt目录下,不会出现在主源码包结构里。在IDE中过滤隐藏这些包
如果只是不想在Android Studio的项目视图中看到它们,可以通过IDE的忽略设置隐藏:- 打开
File > Settings > Editor > File Types - 在
Ignored Files and Folders列表中,添加dagger.hilt.internal.aggregatedroot.codegen、hilt_aggregated_deps,或者直接添加*/generated/*来过滤所有生成文件目录 - 确认保存后,这些包就不会在项目视图中显示了
- 打开
优化Hilt配置减少冗余生成
- 确保使用最新稳定版的Hilt依赖,旧版本可能存在不必要的代码生成冗余:
dependencies { implementation "com.google.dagger:hilt-android:2.48" kapt "com.google.dagger:hilt-android-compiler:2.48" } - 检查项目中Hilt注解的使用,只在必要的类(如Application类、Module类)上添加
@HiltAndroidApp、@Module等注解,避免过度使用导致生成更多冗余文件。
- 确保使用最新稳定版的Hilt依赖,旧版本可能存在不必要的代码生成冗余:
内容的提问来源于stack exchange,提问作者Azharul Islam
相关产品推荐
相关产品推荐

