【问题标题】:Subcomponents dagger2 implementation子组件 dagger2 实现
【发布时间】:2016-10-12 17:38:55
【问题描述】:

我正在尝试在 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 方法就无法提供

【问题讨论】:

    标签: android android-fragments mvp dagger-2


    【解决方案1】:

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

    将此添加到您的 DataRepoComponent:

    @Singleton
    @Provides
    DataRepo provideDataRepo(){
        return new DataRepo();
    }
    

    顺便说一句,我认为查看这个示例 repo 可以帮助您更熟悉 dagger:

    http://github.com/mmirhoseini/fyber_mobile_offers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2020-01-20
      相关资源
      最近更新 更多