title: java.lang.IllegalArgumentException: No injector factory bound for Class<MyActivity_>
body: <p>The error I have is following: </p>
  
  <blockquote>
    <p>Caused by: java.lang.IllegalArgumentException: No injector factory
    bound for Class. Injector factories were bound for
    supertypes of MyActivity_: [MyActivity]. Did you mean to bind an
    injector factory for the subtype?</p>
  </blockquote>
  
  <p>As I understand it happens because I am using an AndroidAnnotations library.</p>
  
  <p><strong>AppComponent.class</strong> :</p>
  
  <pre><code>@Singleton
  @Component(modules = {
      AndroidInjectionModule.class,
      AppModule.class,
      ActivityBindingModule.class })
  public interface AppComponent extends AndroidInjector&lt;DaggerApplication&gt; {
  
      @Component.Builder
      interface Builder {
           @BindsInstance Builder application(Application application);
           AppComponent build();
      }
  
      void inject(Application application);
  
      @Override
      void inject(DaggerApplication instance);
  }
  </code></pre>
  
  <p><strong>AppModule.class</strong> :</p>
  
  <pre><code>@Module
  public abstract class AppModule {
  
      @Binds
      abstract Context provideContext(Application application);
  
      @Provides
      @Singleton
      static SharedPreferencesManager providesPreferences(Application application){
          return SharedPreferencesManager_.getInstance_(application);
      }
  }
  </code></pre>
  
  <p><strong>ActivityBindingModule.class</strong> : </p>
  
  <pre><code>@Module
  public abstract class ActivityBindingModule {
  
      @ContributesAndroidInjector(modules = LoginActivityModule.class)
      @LoginActivityScope
      abstract LoginActivity bindLoginActivity();
  }
  </code></pre>
  
  <p><strong>Application.class</strong> :</p>
  
  <pre><code>@EApplication
  public class Application extends DaggerApplication {
  
      @Inject
      DispatchingAndroidInjector&lt;Activity&gt; activityDispatchingAndroidInjector;
  
      protected AndroidInjector&lt;? extends DaggerApplication&gt; applicationInjector() {
          AppComponent appComponent = DaggerAppComponent.builder()
              .application(this)
              .build();
  
          appComponent.inject(this);
          return appComponent;
      }
  }
  </code></pre>
  
  <p><strong>LoginActivityModule.class</strong></p>
  
  <pre><code>@Module
  public class LoginActivityModule {
  
      @Provides
      @LoginActivityScope
      @ActivityContext
      public Context providesContext(LoginActivity loginActivity){
          return loginActivity;
      }
  
      @Provides
      @LoginActivityScope
      public LoginViewModel providesLoginViewModel(TelephonyManager telephonyManager,
                                               LoginModel loginModel,
                                               SharedPreferencesManager sharedPreferencesManager,
                                               LoginRemoteRepository loginRemoteRepository){
          return new LoginViewModel(telephonyManager, loginModel, sharedPreferencesManager, loginRemoteRepository,
              new CompositeSubscription());
      }
  
      @Provides
      @LoginActivityScope
      public LoginRemoteRepository providesRemoteRepository(@ActivityContext Context context,
                                                        MainApi mainApi,
                                                        SharedPreferencesManager sharedPreferencesManager){
          return new LoginRemoteRepository(mainApi, sharedPreferencesManager, context.getContentResolver());
      }
  
      @Provides
      @LoginActivityScope
      public LoginModel provideLoginModel(){
          return new LoginModel();
      }
  
      @Provides
      @LoginActivityScope
      public TelephonyManager provideTelephonyManager(Context context){
          return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
      }
  }
  </code></pre>
  
  <p><strong>LoginActivity.class</strong> :</p>
  
  <pre><code>@EActivity(R.layout.activity_login)
  public class LoginActivity {
  
      @Inject
      LoginViewModel loginViewModel;
  
      @AfterViews
      void afterViews(){
          AndroidInjection.inject(this);
      }
  }
  </code></pre>