我在为Activity需要此对象的依赖对象提供对象时遇到问题。
我使用Dagger 2.13进行了非常标准的设置,如下所示:
AppComponent.java
@Singleton
@Component(modules = {
AndroidInjectionModule.class,
AppModule.class,
ActivityModule.class
})
public interface AppComponent extends AndroidInjector<Appname> {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(Appname appname);
AppComponent build();
}
void inject(Appname appname);
}
ActivityModule.java
@Module
abstract public class ActivityModule {
@ContributesAndroidInjector(modules = {MainActivityModule.class, MainActivityFragmentsModule.class})
abstract MainActivity contributeMainActivity();
}
MainActivityModule.java
@Module
public class MainActivityModule {
@Provides
@Singleton
static Billing provideBilling(Context context) {
return new Billing(context);
}
@Provides
@Singleton
static ActivityCheckout provideActivityCheckout(MainActivity activity, Billing billing) {
return ActivityCheckout.forActivity(activity, billing);
}
}
MainActivityFragmentsModule.java
@Module
abstract public class MainActivityFragmentsModule {
@ContributesAndroidInjector
abstract WelcomeFragment contributeWelcomeFragment();
}
当我尝试使用时ActivityCheckout,WelcomeFragment出现错误,无法提供此依赖关系:
Error:(20, 8) error: [dagger.android.AndroidInjector.inject(T)] org.solovyev.android.checkout.ActivityCheckout cannot be provided without an @Inject constructor or from an @Provides-annotated method.
似乎未提供该活动,但我不知道为什么。我试图遵循其中一个相同设置的教程之一,并且有可能注入Activity对象。
我使用DaggerApplication,DaggerAppCompatActivity和DaggerFragment。
临摹微笑
相关分类