mercredi 13 juillet 2016

To-be-injected dependency is null

I am trying to inject an attribute of an Activity, but it just gets set to null, and I can't find out why.

@Inject
AuthenticationViewDispatcher mAuthenticationViewDispatcher;

--------

public class AuthenticationViewDispatcher {

    @Inject
    public AuthenticationViewDispatcher() {
    }

}

----

@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent extends AbstractComponent {

    Context context();
}

----

@Module
public class ApplicationModule {

private final Application mApplication;

public ApplicationModule(final @NonNull Application application) {
    this.mApplication = application;
}

@Provides
@Singleton
Context provideApplicationContext() {
    return this.mApplication;
}

----

@Singleton
@Component(modules = DataModule.class)
public interface DataComponent {
}

----

@PerActivity
@Component(dependencies = {ApplicationComponent.class}, modules = {LoginModule.class})
public interface LoginComponent extends ApplicationComponent {

    void inject(final InjectedActivity baseActivity);
}

----
@Module
public class LoginModule {

    @Provides
    @Singleton
    AuthenticationFlowDispatcher provideAuthenticationViewDispatcher(final @NonNull AuthenticationFlowDispatcher authenticationViewDispatcher) {
        return authenticationViewDispatcher;
    }
}

It's not the first time I use this kind of setup, but I've never had this issue before. What am I forgetting?

Aucun commentaire:

Enregistrer un commentaire