首页 > 解决方案 > Dagger-Hilt:为什么我们必须注释没有注入的活动

问题描述

为什么我们必须对包含片段的活动进行注释呢?

Activity 没有 @Inject 但片段需要一些依赖项。我将片段注释为@AndroidEntryPoint但崩溃,直到在父活动上设置它。

标签: androidkotlindaggerdagger-hilt

解决方案


没有 Activity 就无法启动 Fragment。你必须注释你的活动,@AndroidEntryPoint因为你的片段现在是一个 HiltComponent。当您不使用@AndroidEntryPointHilt 注释 Activity 时,不会为此 Activity 创建组件,因此无法启动片段,因为它还没有创建 ActivtyComponent。

Hilt 活动需要附加到 Hilt 应用程序。Hilt 片段必须附加到 Hilt 活动。

见这里:https ://dagger.dev/hilt/migration-guide (2.迁移活动和片段)


推荐阅读