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

Dagger-Hilt中能否同时使用@Inject与@AssistedInject注入ViewModel?

问题解决方法

@Inject 和 @AssistedInject 是Dagger中互斥的构造函数注解,不能同时标注在同一个构造方法上,这是导致你报错的核心原因。

针对你需要注入SavedStateHandle的场景,Hilt已经提供了原生支持,不需要使用@AssistedInject实现,直接按以下方式修改代码即可:

@HiltViewModel
class DaoViewModel @Inject constructor(
    private val repository: MoviesFavoritesRepository,
    private val state: SavedStateHandle
) : ViewModel() {
    // 原有业务逻辑无需修改
}

仅需要删除构造函数上的@AssistedInject注解,以及SavedStateHandle参数前的@Assisted注解,Hilt会自动完成SavedStateHandle的注入。


内容的提问来源于stack exchange,提问作者Ahmadddd4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:12:02