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

使用Hilt实现底部导航时点击Favorite应用崩溃问题求助

解决方案

1. 统一Dagger-Hilt依赖版本

你当前的hilt-android版本(2.46.1)和hilt-compiler版本(2.44)不匹配,这会导致编译生成的Hilt组件代码不一致,直接引发该错误。修改依赖为统一版本:

// Dagger-Hilt
api("com.google.dagger:hilt-android:2.46.1")
kapt("com.google.dagger:hilt-compiler:2.46.1")

2. 确保Application类添加@HiltAndroidApp注解

Hilt需要在Application级别初始化全局组件,缺失这个注解会导致Activity的@AndroidEntryPoint无法生成对应的组件实现类。创建或修改你的Application类:

@HiltAndroidApp
class EFashionApplication : Application()

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

<application
    android:name=".EFashionApplication"
    <!-- 其他原有配置 -->
>
</application>

3. 修正Compose中ViewModel的获取方式

在Activity的setContent中直接批量获取ViewModel并传递给BottomNavigationBar,容易出现生命周期上下文不匹配的问题。建议在各个导航目的地的Composable中单独获取对应ViewModel:
比如在Favorite页面的Composable中:

@Composable
fun FavoriteScreen(
    viewModel: FavoriteViewModel = hiltViewModel()
) {
    // 页面业务逻辑
}

这样Hilt会自动关联导航组件的生命周期,避免注入异常。

4. 清理并重建项目

由于KAPT生成的代码可能存在缓存问题,执行以下操作:

  • 点击Android Studio菜单栏的Build > Clean Project
  • 接着点击Build > Rebuild Project

完成以上步骤后重新运行应用,点击Favorite图标即可正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:45:16