升级Android Hilt到androidx.hilt版本是否需要保留原有classpath与插件
Hilt androidx版本升级依赖说明
核心结论
你必须保留原有com.google.dagger相关的classpath、Gradle插件和核心依赖,不能完全删除,androidx.hilt系列依赖无法独立运行。
两类依赖的定位差异
com.google.dagger开头的Hilt相关依赖是Hilt框架的核心实现:- 根项目build.gradle中配置的
hilt-android-gradle-plugin是Hilt的编译插件,负责字节码插桩等核心编译逻辑 hilt-android是核心运行时库,包含Hilt的核心注解和注入实现hilt-android-compiler是核心注解处理器,负责解析Hilt注解生成对应注入代码
以上三个核心组件缺一不可,删除后必然会出现找不到Hilt相关类的编译错误。
- 根项目build.gradle中配置的
androidx.hilt开头的是Jetpack官方提供的Hilt扩展组件,仅用于适配Jetpack生态的其他库(如Navigation、WorkManager、Compose等),属于Hilt的附加能力,无法脱离Google官方的Hilt核心依赖独立运行。
正确配置逻辑
- 原有
com.google.dagger相关的classpath、插件、核心运行依赖、核心注解处理器全部保留,可根据官方版本更新说明升级对应版本号即可 - 仅当你需要使用Hilt与Jetpack组件的整合能力时,才需要添加对应
androidx.hilt的扩展依赖和androidx.hilt:hilt-compiler注解处理器,两类依赖共存即可,不存在互斥关系。
你之前出现编译报错的原因是直接删除了Hilt核心依赖,仅保留了扩展依赖,缺少核心实现导致框架无法正常工作。
内容的提问来源于stack exchange,提问作者Abhinav Tyagi
相关产品推荐
相关产品推荐

