Generating a MembersInjector for [Class]. Prefer to run the dagger processor over that class instead

前端 未结 2 1984
温柔的废话
温柔的废话 2021-02-12 20:58

I have these warnings and I don\'t understand what they mean. Can someone point me to something?

For classes I inject into (where there is a component.inject(this)

2条回答
  •  生来不讨喜
    2021-02-12 21:23

    When Dagger's annotation processor runs, it generates two types of classes:

    1. Implementations of @Component interfaces
    2. Provider and MembersInjector implementations for each @Inject'd type.

    While it's generating the @Component interface implementation, it connects each of the Provider and MembersInjector implementations according to how your modules were configured. If your component or any of the modules therein refer to an @Inject'd type that was compiled without the Dagger processor it will still generate the Provider or MembersInjector, but once for each component rather than once for the @Inject'd class.

    This isn't really a problem (hence not a warning or error), but it does mean that can potentially have the Dagger processor generate the same classes many times for a single application. It might slow down compilation if and take up a bit more bytecode if it really gets out of hand.

    The easy fix is just to make sure that you're running the Dagger annotation processor when you compile your @Inject'd types as well as your components.

提交回复
热议问题