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

Dagger Hilt编译错误:找不到DefaultActivityViewModelFactory相关类

Dagger Hilt编译错误:找不到DefaultActivityViewModelFactory/DefaultFragmentViewModelFactory类

问题概述

在Android项目中使用Dagger Hilt时触发编译错误,提示dagger.hilt.android.internal.lifecycle.DefaultActivityViewModelFactory和dagger.hilt.android.internal.lifecycle.DefaultFragmentViewModelFactory类未在类路径中找到,尝试将androidx.hilt版本降至1.0.0-alpha01后问题仍未解决。

原因分析

核心问题为依赖版本不兼容:

  • 项目中使用的androidx.hilt:hilt-lifecycle-viewmodel版本为1.0.0-alpha03,属于早期预览版,而Dagger Hilt核心版本为2.48。后续版本中,AndroidX Hilt的ViewModel相关功能已被整合到Dagger Hilt核心库中,旧版androidx.hilt库依赖的内部类在新版Dagger Hilt中已不存在或路径变更。
  • 旧版androidx.hilt库的@DefaultActivityViewModelFactory注解会引用Dagger Hilt内部的DefaultActivityViewModelFactory类,但该类在Dagger Hilt 2.48中已不再是公开可依赖的类,依赖关系完全调整。

解决方案

步骤1:更新libs.versions.toml配置

移除旧的androidx.hilt版本定义及相关库:

[versions]
# 移除该行:hiltLifecycleViewmodel = "1.0.0-alpha03"
# 保持hilt与hiltAndroidCompiler版本一致(均为2.48)
hilt = "2.48"
hiltAndroidCompiler = "2.48"
# 其他版本配置保持不变

[libraries]
# 删除以下两个androidx-hilt相关定义
# androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hiltLifecycleViewmodel" }
# androidx-hilt-lifecycle-viewmodel = { module = "androidx.hilt:hilt-lifecycle-viewmodel", version.ref = "hiltLifecycleViewmodel" }
# 其他库配置保持不变

步骤2:调整app模块build.gradle.kts依赖

移除旧的androidx-hilt依赖,仅保留Dagger Hilt核心依赖:

dependencies {
    // 其他依赖保持不变...

    // 仅保留Dagger Hilt核心依赖
    implementation(libs.hilt.android)
    ksp(libs.hilt.android.compiler)

    // 移除以下两行旧依赖
    // implementation(libs.androidx.hilt.lifecycle.viewmodel)
    // ksp(libs.androidx.hilt.compiler)

    // 其他依赖保持不变...
}

步骤3:代码适配(若需)

将原androidx.hilt.lifecycle.HiltViewModel注解替换为Dagger Hilt核心库的注解:

// 替换前
// import androidx.hilt.lifecycle.HiltViewModel
// @HiltViewModel

// 替换后
import dagger.hilt.android.lifecycle.HiltViewModel
@HiltViewModel
class YourViewModel @Inject constructor(/* 依赖参数 */) : ViewModel() {
    // 业务逻辑
}

步骤4:清理缓存并重新编译

执行以下操作确保缓存完全清理:

  • Android Studio菜单栏:Build → Clean Project → Rebuild Project
  • 或终端执行命令:./gradlew clean assembleDebug

验证基础配置

确保Application类正确添加@HiltAndroidApp注解:

import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class ChatApplication : Application() {
    // 自定义逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 07:24:56