使用@WorkerInject注入Worker时出现未解析引用错误如何解决
问题原因
- 依赖版本不兼容:你当前使用的Dagger Hilt核心版本2.38.1和
androidx.hilt:hilt-work:1.0.0版本不匹配,hilt-work 1.0.0要求最低配合Dagger Hilt 2.40及以上版本使用,低版本核心库没有对@WorkerInject注解的对应支持逻辑,会直接触发未解析引用错误。 - 缺少必要的Gradle插件配置:如果未在模块级build.gradle中开启
kotlin-kapt插件和Dagger Hilt安卓插件,注解处理器无法正常识别@WorkerInject注解。 - 未手动导入对应注解包:IDE不会在所有场景下自动导入
androidx.hilt.work.WorkerInject包路径,缺少导入语句会直接触发未解析引用报错。 - 未开启Hilt全局注入配置:Application类没有添加
@HiltAndroidApp注解的情况下,Hilt的注入相关注解都无法正常生效。
解决方案
- 统一依赖版本,将Dagger Hilt核心版本升级到和hilt-work适配的2.40及以上稳定版本,示例配置如下:
def hilt_version = '2.44' implementation "com.google.dagger:hilt-android:$hilt_version" kapt "com.google.dagger:hilt-android-compiler:$hilt_version" def hilt_worker_version = '1.0.0' implementation "androidx.hilt:hilt-work:$hilt_worker_version" kapt "androidx.hilt:hilt-compiler:$hilt_worker_version"
- 确认模块级build.gradle顶部已经添加了必要的插件:
plugins { id 'com.android.application' // 若为库模块则改为com.android.library id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' id 'dagger.hilt.android.plugin' }
- 确认项目级build.gradle中已经添加了Hilt插件的classpath依赖:
buildscript { dependencies { def hilt_version = '2.44' classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version" } }
- 在你的Worker类文件顶部手动添加
@WorkerInject的导入语句:
import androidx.hilt.work.WorkerInject import dagger.assisted.Assisted import androidx.work.Worker import androidx.work.WorkerParameters import android.content.Context
- 确保你的自定义Application类添加了
@HiltAndroidApp注解:
@HiltAndroidApp class MyApp : Application() { // 自定义逻辑 }
- 同步Gradle配置后,执行
Build -> Clean Project再执行Rebuild Project即可解决报错。
内容的提问来源于stack exchange,提问作者André Nogueira
相关产品推荐
相关产品推荐

