简体   繁体   English

从APK中排除dagger2类生成的

[英]Exclude generated by dagger2 class from apk

I have abstract FirstClass , and his child class SecondClass In second class I have dagger inject: 我有抽象的FirstClass和他的子类SecondClass在第二个类中,我用了匕首注入:

component.inject(this);

But _MembersInjector generate for this two classes — FirstClass_MembersInjector and SecondClass_MembersInjector 但是_MembersInjector为这两个类生成— FirstClass_MembersInjectorSecondClass_MembersInjector

How can I exclude FirstClass_MembersInjector from my build? 如何从构建中排除FirstClass_MembersInjector

Assuming you have something like: 假设您有类似以下内容:

class FirstClass {

    @Inject Integer firstClassField;

}

then: 然后:

class SecondClass extends FirstClass {

    @Inject String secondClassField;

    void injectMembers() {
        DaggerComponent.builder().build().inject(this);
    }
}

Dagger 2 generates members injectors for all classes with @Inject annotated fields ie, candidates for property injection. Dagger 2使用@Inject注释字段为所有类生成成员注入器,即属性注入的候选者。 This is regardless of whether you are actually requesting injection for that class somewhere in your code or not. 这与您是否实际上在代码中的某处请求该类的注入无关。

In the contrived example above, the FirstClass_MembersInjector will be generated even though it is not used in the generated Dagger Component. 在上面人为的示例中,即使在生成的Dagger组件中未使用FirstClass_MembersInjector也将生成它。

The solution to your problem probably lies with better organisation your project rather than trying to configure unusual behaviour for Dagger 2. 解决问题的方法可能是更好地组织项目,而不是尝试为Dagger 2配置异常行为。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM