子组件dagger2实现

时间:2016-10-12 17:38:56

标签: android android-fragments mvp dagger-2

我试图在Github上使用this Google repo后使用dagger2来应用MVP概念  我有多个片段启动画面我使用MVP创建了第一个启动画面片段

并且有它的组件类

@AScoped
@Component(dependencies = DataRepoComponent.class,modules = SplashScreenModule.class)
public interface SplashScreenComponent {
    void inject(SplashScreenActivity splashScreenActivity);
}

此组件类依赖于名为DataRepoComponent

的数据提供程序组件
@Singleton
@Component(modules = {DataRepoModule.class, ApplicationModule.class})
public interface DataRepoComponent {
    DataRepo getDataRepo();
}

以下是数据存储模块

@Module
public class DataRepoModule {
    @Singleton
    @Provides
    OperatorHelper provideSharedPreferncesHelper(Context context){
        return new OperatorHelper(context);
    }


    @Singleton
    @Provides
    SharedPreferences provideSharedPreference(Context context){
        return PreferenceManager.getDefaultSharedPreferences(context);
    }
}

一切正常,直到这时我尝试添加花药闪屏片段让我们称之为FirstSplashScreenFragment 当我像这样添加它的组件

@AScoped
@Component(dependencies = DataRepoComponent.class, modules = FirstSplashScreenModule.class)
public interface FirstSplashScreenComponent {
    void inject(SplashScreenActivity splashScreenActivity);

}

我收到以下错误 1 -

  

错误:(5,49)错误:找不到符号类DaggerDataRepoComponent

     没有@Proides-annotated方法

无法提供

1 个答案:

答案 0 :(得分:0)

说实话,很难找到你的问题,因为你的谜题有些缺失,但我想这可能会有所帮助:

将此添加到您的DataRepoComponent:

@Singleton
@Provides
DataRepo provideDataRepo(){
    return new DataRepo();
}
顺便说一句,我认为看看这个样本回购可以帮助你更熟悉匕首:

  

http://github.com/mmirhoseini/fyber_mobile_offers