Dagger-Hilt:为什么我们必须注释没有注入的活动

Dagger-Hilt : Why we must annotate Activities which has no injection

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

Activity 没有 @Inject 但片段需要一些依赖项。 我将片段注释为 @AndroidEntryPoint 但崩溃,直到在父 activity.

上设置它

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

Hilt activities need to be attached to Hilt applications. Hilt fragments must be attached to Hilt activities.

参见此处:https://dagger.dev/hilt/migration-guide(2. 迁移 Activity 和片段)