title: error: [Dagger/MissingBinding] [dagger.android.AndroidInjector.inject(T)] Dagger
body: <p>I wanna to make a simple project with one main activity and multiple fragments.
  here I have two fragments at one activity and I want to inject presenter to login fragment but it doesn't work. where is my mistake?</p>
  
  <p>MainApplication.java</p>
  
  <pre><code>public class MainApplication extends DaggerApplication{
  
  
  private static ApplicationComponent component;
  @Override
  public void onCreate() {
      super.onCreate();
      Utils.init(this);
  }
  public static ApplicationComponent getComponent() {
      return component;
  }
  
  
  protected AndroidInjector&lt;? extends DaggerApplication&gt; applicationInjector() 
  {
      component = 
      DaggerApplicationComponent.builder().application(this).build();
      component.inject(this);
      return component;
    }
  
  
  }
  </code></pre>
  
  <p>MainActivity.java</p>
  
  <pre><code>public class MainActivity extends DaggerAppCompatActivity  {
  
  
  
  private Fragment[] mFragments = new Fragment[2];
  private int curIndex;
  
  @Inject
  HomeFragment homeFragment;
  
  @Inject
  LoginFragment loginFragment;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      if (savedInstanceState != null) {
          curIndex = savedInstanceState.getInt("curIndex");
      }
      mFragments[AppConstant.HOME_FRAGMENT] = homeFragment;
      mFragments[AppConstant.LOGIN_FRAGMENT] = loginFragment;
  
      FragmentUtils.add(getSupportFragmentManager(), mFragments, 
    R.id.container, curIndex);
      showCurrentFragment(AppConstant.LOGIN_FRAGMENT);
  }
  private void showCurrentFragment(int index) {
      FragmentUtils.showHide(curIndex = index, mFragments);
  }
  
  @Override
  public void onSaveInstanceState(Bundle outState, PersistableBundle 
    outPersistentState) {
      super.onSaveInstanceState(outState, outPersistentState);
      outState.putInt("curIndex", curIndex);
    }
  
  
   }
  </code></pre>
  
  <p>ApplicationComponent.java</p>
  
  <pre><code>@Singleton
  @Component(modules = {
      ContextModule.class,
      ApiServiceModule.class,
      AndroidSupportInjectionModule.class,
      ActivityBuilder.class
   })
    public interface ApplicationComponent extends 
           AndroidInjector&lt;DaggerApplication&gt; {
  
  void inject(MainApplication component);
  
  @Component.Builder
  interface Builder {
  
      ApplicationComponent build();
  
      @BindsInstance
      Builder application(MainApplication application);
  }
  }
  </code></pre>
  
  <p>LoginFragment.java</p>
  
  <pre><code>public class LoginFragment extends DaggerFragment{
  
  View mRootView;
  
  
  @Inject
  HomeFragment homeFragment;
  
  
  @Inject
  LoginContract.Presenter mPresenter;
  
  @Inject
  public LoginFragment() {
      // Required empty public constructor
  }
  
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
  }
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {
  
      mRootView =inflater.inflate(R.layout.fragment_login, container, false);
      ButterKnife.bind(this,mRootView);
      // Inflate the layout for this fragment
      return mRootView;
  }
  
  @OnClick(R.id.button)
  public void goToHome(){
      FragmentUtils.replace(this,homeFragment,false);
  
  }
  
  @Override
  public void onAttach(Context context) {
      super.onAttach(context);
  
  }
  
  @Override
  public void onDetach() {
      super.onDetach();
  
       }
  
  
    }
  </code></pre>
  
  <p>ActivityBuilder.java</p>
  
  <pre><code>@Module
  public abstract class ActivityBuilder {
  
  @ContributesAndroidInjector(modules = {MainActivityModule.class , 
  FragmentContainerModule.class, AndroidSupportInjectionModule.class} )
  abstract MainActivity bindMainActivity();
  
  
   }
  </code></pre>
  
  <p>FragmentContainerModule.java</p>
  
  <pre><code>@Module
  public abstract class FragmentContainerModule {
  
  
   @ContributesAndroidInjector(modules = 
               {HomeFragmentModule.class,
                AndroidSupportInjectionModule.class})
  abstract HomeFragment contributeHomeFragmentInjector();
  
  
  @FragmentScope
  @ContributesAndroidInjector(modules = 
             {LoginFragmentModule.class,
               AndroidSupportInjectionModule.class})
  abstract LoginFragment contributeLoginFragmentInjector();
  
  
  
  
  }
  </code></pre>
  
  <p>** LoginFragmentModule.java</p>
  
  <pre><code>@Module
  public abstract class LoginFragmentModule {
  
  @FragmentScope
  @Binds
  public abstract LoginContract.Presenter presenter(LoginPresenter 
        loginPresenter);
  }
  </code></pre>
  
  <p>and this is the error :</p>
  
  <pre><code>error: [Dagger/MissingBinding] [dagger.android.AndroidInjector.inject(T)] 
  ir.heart.heartproject.utils.MvpUtils.LoginContract.Presenter cannot be 
  provided without an @Provides-annotated method.
  A binding with matching key exists in component: 
  ir.heart.heartproject.utils.di.
  modules.FragmentContainerModule_ContributeLoginFr 
  agmentInjector.LoginFragmentSubcomponent
  ir.heart.heartproject.utils.MvpUtils.
  LoginContract.Presenter is injected at
  ir.heart.heartproject.views.fragments.LoginFragment.mPresenter
  ir.heart.heartproject.views.fragments.LoginFragment is injected at
  ir.heart.heartproject.views.activities.MainActivity.loginFragment
  ir.heart.heartproject.views.activities.MainActivity is injected at
  dagger.android.AndroidInjector.inject(T)
  component path: 
  ir.heart.heartproject.utils.di.component.ApplicationComponent ? 
  ir.heart.heartproject.utils.di.modules.
  ActivityBuilder_BindMainActivity.MainActivitySubcomponent
  </code></pre>