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

使用HiltViewModel注入ViewModel报错,含NavHost时崩溃求助

Hilt注入ViewModel报错原因及解决办法

可能的原因和对应解决步骤:

  • 依赖缺失或版本不匹配
    大概率是没加Compose Navigation与Hilt绑定的专用依赖,或是Hilt、Compose Navigation版本不兼容。
    解决:在Module级build.gradle中添加hilt-navigation-compose依赖,且保证它和你的Hilt、Compose版本匹配:

    implementation "androidx.hilt:hilt-navigation-compose:1.0.0"
    // 注意版本要和Hilt核心依赖对应,比如Hilt用2.44,这里也选兼容的同系列版本
    

    同时检查hilt-android和hilt-compiler的版本必须完全一致。

  • 构建缓存导致生成代码未更新
    Hilt靠注解处理器生成代码,若缓存没清理,MainActivity对应的GeneratedComponent实现类可能没生成,就会触发该错误。
    解决:执行Build菜单的Clean Project后再Rebuild Project,或者直接删除项目根目录的.gradle和build文件夹后重新构建。

  • NavHost未正确关联Activity的Hilt组件
    若NavHost不是直接放在MainActivity的setContent中,而是嵌套在未加Hilt注解的组件里,会导致hiltViewModel()找不到正确的Component Holder。
    解决:确保NavHost的直接宿主是带@AndroidEntryPoint的MainActivity,嵌套场景下也要保证上层组件能传递正确的Hilt上下文。

  • 注解处理器未正确启用
    即便加了依赖,也可能没在build.gradle里启用Hilt的注解处理器。
    解决:检查Module级build.gradle是否配置正确:

    plugins {
        id 'com.android.application'
        id 'kotlin-android'
        id 'dagger.hilt.android.plugin'
    }
    
    android {
        ...
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }
    
    dependencies {
        implementation "com.google.dagger:hilt-android:2.44"
        kapt "com.google.dagger:hilt-android-compiler:2.44"
        ...
    }
    

    确认dagger.hilt.android.plugin插件已应用,且kapt依赖添加正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:13:24