You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dagger Hilt无法在HiltWorker中注入依赖的问题求助

解决方案

问题根源

错误日志明确提示找不到Worker的(Context, WorkerParameters)构造方法——这是WorkManager默认创建Worker时依赖的仅含Context和WorkerParameters的构造。但使用@AssistedInject后,Worker必须由HiltWorkerFactory实例化,而当前WorkManager未正确关联该工厂,仍尝试用默认逻辑创建Worker,自然找不到对应构造方法(添加Repository参数后,默认构造已不存在)。

修复步骤

  1. 确认WorkManager默认启动器完全禁用
    已在Manifest中移除WorkManagerInitializer,需确保代码中没有手动调用WorkManager.initialize(),完全交由Application类的Configuration.Provider实现处理WorkManager初始化。

  2. 清理并重构项目
    kapt生成的代码可能存在缓存问题,执行Clean Project + Rebuild Project,确保Hilt生成的Worker工厂代码正确更新。

  3. 对齐依赖版本
    当前hilt-work:1.0.0与hilt-android:2.47版本不兼容,需将hilt-work和hilt-compiler升级至适配版本,同时将hilt-navigation-compose替换为稳定版:

    implementation ("com.google.dagger:hilt-android:2.47")
    kapt("com.google.dagger:hilt-android-compiler:2.47")
    // 升级为稳定版
    implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
    implementation("androidx.work:work-runtime-ktx:2.8.1")
    // 对齐Hilt版本的hilt-work
    implementation("androidx.hilt:hilt-work:1.1.0")
    kapt("androidx.hilt:hilt-compiler:1.1.0")
    
  4. 验证Application类注册
    确保AppInstance类已在Manifest中正确注册为应用的android:name属性值:

    <application
        android:name=".AppInstance"
        ...>
        ...
    </application>
    
  5. 清除WorkManager缓存
    卸载应用后重新安装,或在开发者选项中清除应用存储,避免之前错误的WorkRequest残留影响测试结果。


内容的提问来源于stack exchange,提问作者Евгений s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:48:10