Application类中的注入对象为null

时间:2015-04-30 18:22:05

标签: java android dependency-injection dagger

我有这个模块:

@Singleton
@Module(injects = { MyApplication.class }, library = true)
public class MyModule {

    @Singleton
    @Provides
    public Configuration provideConfiguration() {
        Configuration config = Configuration.newInstance();

        return config;
    }
}

我正在我的应用程序中注入配置:

public class MyApplication extends Application {
  @Inject
  Configuration config;

  @Override
  public void onCreate() {
    List<Object> list = new ArrayList<>();
    list.add(new MyModule());

    graph = ObjectGraph.create(list.toArray());

    graph.inject(this);
  }
}

这种方法的问题是如果我在graph.inject(this);之后检查它,我的配置总是为空。我正在学习本教程:http://antonioleiva.com/dagger-android-part-2/

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我无法看到这个问题。我试图重现行为,但一切都按预期工作。我唯一能想到的是,replace(R.id.container, fragment)及其Configuration静态方法的实现可能会发生一些事情。确保它实际上返回一个非null实例。