Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Dagger 2 Android应用程序组件缺少注入方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试了一个带有dagger. android包的新发布的Dagger 2.10的小型 Android项目.
Dagger只应注入MainApplication类,其他任何依赖项都没有:

的build.gradle

dependencies {
  ...
  // Dagger
  compile 'com.google.dagger:dagger:2.10'
  compile 'com.google.dagger:dagger-android:2.10'
  AnnotationProcessor 'com.google.dagger:dagger-compiler:2.10'

  // Fix for incompatible library versions when adding dagger-android and having espresso-core:2.2.2 in tests
  androidTESTCompile 'com.google.code.findbugs:jsr305:3.0.1'
}
@H_724_6@mainApplication.java

public class MainApplication extends Application implements HasDispatchingActivityInjector {

  @Inject DispatchingAndroidInjector<Activity> dispatchingAndroidInjector;

  @Override
  public void onCreate() {
      super.onCreate();
      DaggerMainApplicationComponent.create();
   // DaggerMainApplicationComponent.create().inject(this); does not work - no inject(...) method!
  }

  @Override
  public DispatchingAndroidInjector<Activity> activityInjector() {
      return dispatchingAndroidInjector;
  }
}
@H_724_6@mainApplicationComponent.java

@Component(modules = AndroidInjectionModule.class)
public interface MainApplicationComponent {}

自动生成的DaggerMainApplicationComponent.java:

public final class DaggerMainApplicationComponent implements MainApplicationComponent {
  private DaggerMainApplicationComponent(Builder builder) {
    assert builder != null;
  }

  public static Builder builder() {
    return new Builder();
  }

  public static MainApplicationComponent create() {
    return new Builder().build();
  }

  public static final class Builder {
    private Builder() {}

    public MainApplicationComponent build() {
      return new DaggerMainApplicationComponent(this);
    }
  }
}

我是Dagger的新手,有很多资源,但很多人用过时的Dagger库描述DI.我的实施有什么问题?
我还发现了一个名为MainApplication_MembersInjector的自动生成的类…我自己必须使用它吗?

解决方法

@Component(modules = AndroidInjectionModule.class)
public interface MainApplicationComponent {
    void inject(DispatchingAndroidInjector dispatchingAndroidInjector);

}

大佬总结

以上是大佬教程为你收集整理的Dagger 2 Android应用程序组件缺少注入方法全部内容,希望文章能够帮你解决Dagger 2 Android应用程序组件缺少注入方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。