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

使用Hilt注入ViewModel时出现致命异常的求助

Hilt ViewModel注入崩溃解决方案

1. 检查ViewModel构造函数配置

  • 确保MainMenuViewModel的构造函数为public,仅用@Inject标注,不要添加私有访问修饰符:
@HiltViewModel
class MainMenuViewModel @Inject constructor(
    private val repository: MenuPhotoGalleryRepository
) : ViewModel() {
    // 业务逻辑
}
  • 在Compose中必须通过hiltViewModel()获取实例,禁止手动调用构造函数:
@Composable
fun MainMenuScreen(
    viewModel: MainMenuViewModel = hiltViewModel()
) {
    // UI代码
}

2. 确保Repository注入配置正确

方式一:构造函数注入

直接给MenuPhotoGalleryRepository的public构造函数添加@Inject,若有其他依赖需确保依赖也能被Hilt提供:

class MenuPhotoGalleryRepository @Inject constructor(
    // 示例:若依赖Retrofit实例,需确保该实例已被Hilt配置
) {
    // 仓库逻辑
}

方式二:自定义Module提供

使用Module时需注意@InstallIn的生命周期范围和@Provides方法的正确性:

@Module
@InstallIn(SingletonComponent::class) // 若需单例用SingletonComponent,ViewModel生命周期用ViewModelComponent
object RepositoryModule {
    @Provides
    fun provideMenuPhotoGalleryRepository(): MenuPhotoGalleryRepository {
        return MenuPhotoGalleryRepository()
        // 若构造有参数,需确保参数能被Hilt注入
    }
}

3. 验证全局配置完整性

  • 确认Application类正确标注@HiltAndroidApp,且为App的入口类:
@HiltAndroidApp
class MyApp : Application() {
    // 初始化逻辑
}
  • 检查MainActivity的@AndroidEntryPoint注解,且Activity继承自ComponentActivity或AppCompatActivity:
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
    // Activity逻辑
}
  • 核对build.gradle中的Hilt依赖配置(适配2.46.1版本):
// 项目级build.gradle
buildscript {
    dependencies {
        classpath 'com.google.dagger:hilt-android-gradle-plugin:2.46.1'
    }
}

// 应用级build.gradle
plugins {
    id 'kotlin-kapt'
    id 'dagger.hilt.android.plugin'
}

dependencies {
    implementation 'com.google.dagger:hilt-android:2.46.1'
    kapt 'com.google.dagger:hilt-android-compiler:2.46.1'
    implementation 'androidx.hilt:hilt-navigation-compose:1.0.0'
}

4. 清理重建项目

  • 执行Build > Clean Project,再执行Build > Rebuild Project,解决缓存导致的代码生成异常
  • 重启Android Studio,清除IDE缓存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:30:03