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

Android:Hilt模块未被使用导致无报错信息崩溃问题

问题排查与解决方案

1. 检查实现类的构造函数注入

你的CaptureLocalDataSourceImpl和CaptureRepositoryImpl必须带有@Inject注解的构造函数——因为@Binds注解依赖Hilt自动创建这些实现类的实例,没有的话整个依赖链会断裂:

// 示例:给实现类添加@Inject构造
class CaptureLocalDataSourceImpl @Inject constructor() : CaptureLocalDataSource {
    // ... 业务实现
}

class CaptureRepositoryImpl @Inject constructor(
    private val localDataSource: CaptureLocalDataSource
) : CaptureRepository {
    // ... 业务实现
}

这是最可能导致崩溃的原因:Hilt找不到创建CaptureRepository的路径,进而无法注入UpdateCaptureUseCase,最终在初始化HomeViewModel时抛出异常。

2. 解决Android Studio的"无引用"提示

这个提示基本是IDE缓存bug,和代码逻辑无关,可通过以下操作修复:

  • 执行File -> Invalidate Caches... -> Invalidate and Restart
  • 重新编译项目(Build -> Rebuild Project)
    Hilt会在编译时自动生成Module的引用代码,只是IDE没及时识别而已。

3. 强制获取崩溃日志

如果Logcat没显示错误,试试这些方法:

  • 重启Logcat,确保选中当前应用进程
  • 清空Logcat后复现崩溃,避免旧日志干扰
  • 用命令行执行adb logcat查看原始输出,有时IDE会过滤掉关键异常信息

4. 确认导航组件的Hilt集成

确保你用的是HiltNavHost而不是普通NavHost,否则Hilt无法为Compose中的ViewModel注入依赖:

@Composable
fun AppNavHost(navController: NavHostController) {
    HiltNavHost(navController = navController, startDestination = "home") {
        composable("home") {
            HomeScreen()
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:25:58