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

Android TV模块中Hilt下BrowseSupportFragment获取ViewModel报错

Android TV中BrowseSupportFragment使用Hilt获取ViewModel报错解决方法

问题场景

在Android TV模块开发中,继承BrowseSupportFragment的MainFragment通过viewModels()获取Hilt注入的MyViewModel时,出现红色高亮报错。相关配置及代码如下:

模块依赖(build.gradle(Module:tv))

dependencies {
    // hilt
    implementation 'com.google.dagger:hilt-android:2.44'
    kapt 'com.google.dagger:hilt-android-compiler:2.44'
    
    implementation 'com.google.code.gson:gson:2.9.0'
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'androidx.leanback:leanback:1.0.0'
    implementation 'com.github.bumptech.glide:glide:4.11.0'
}

MainFragment代码

@AndroidEntryPoint
class MainFragment : BrowseSupportFragment() {
    
    private val viewModel: MyViewModel by viewModels()
    ...
}

MyViewModel代码

@HiltViewModel
class MyViewModel @Inject constructor(
    private val usecase: CategoryUseCase
) : ViewModel() {
    ...
}

解决步骤

1. 补充Hilt ViewModel相关依赖

默认Hilt核心依赖不包含ViewModel扩展支持,需添加专门的依赖到模块build.gradle:

dependencies {
    // 保留原有依赖,新增以下两行
    implementation 'androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03'
    kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
}

2. 配置Hilt全局入口

确保Application类添加@HiltAndroidApp注解,这是Hilt初始化的必要条件:

@HiltAndroidApp
class TvApplication : Application() {
    // 可添加自定义初始化逻辑
}

同时在AndroidManifest.xml中指定该Application:

<application
    android:name=".TvApplication"
    <!-- 其他配置项 -->
    >
    <!-- 组件声明 -->
</application>

3. 使用Hilt提供的ViewModel扩展函数

默认viewModels()不支持Hilt注入,需替换为Hilt提供的hiltViewModels():

// 导入正确的扩展函数
import androidx.hilt.navigation.fragment.hiltViewModels

@AndroidEntryPoint
class MainFragment : BrowseSupportFragment() {
    
    private val viewModel: MyViewModel by hiltViewModels()
    ...
}

4. 清理缓存并重新构建

执行以下操作消除缓存导致的编译问题:

  • 点击Android Studio菜单栏Build -> Clean Project
  • 随后执行Build -> Rebuild Project
  • 或使用Gradle命令:
./gradlew clean :tv:build

完成以上步骤后,viewModels()的红色高亮报错应消失,ViewModel可正常通过Hilt注入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:26:01