java - Dagger2 Android 依赖注入 java
问题描述
我是匕首2的新手。我正在尝试创建一个“ActivityComponent”,它将从我的活动中检索所有信息(例如:上下文...),以及我试图在其中注入“Activity 组件”的另一个组件(在下面的代码中,它是 CheckErrorsModel 类)。
@Singleton
public class CheckErrorsModel {
private Context context;
@Inject
public CheckErrorsModel(MainActivityComponent mainActivityComponent) {
this.context = mainActivityComponent.getContext();
}
public void test() {
Log.d("test", "test lancé ");
}
}
接口组件类:
@Singleton
@Component()
public interface CheckErrorsModelDi {
CheckErrorsModel getCheckErrorsModel();
MainActivityComponent getApplicationComponent();
}
以及与应用程序上下文类相关的所有内容:
@Component(modules = {MainActivityModule.class})
@Singleton
public interface MainActivityComponent {
Context getContext();
void inject(MainActivity mainActivity);
}
模块类:
@Module
public class MainActivityModule {
private final Context context;
public MainActivityModule(Context context) {
this.context = context;
}
@Provides
@Singleton
Context provideContext(){
return context;
}
}
但是一旦我尝试构建应用程序:我遇到了一些错误:
.MainActivityComponent 不能在没有 @Provides 注释的方法的情况下提供 MainActivityComponent getApplicationComponent();
如果没有 @Provides 注释的方法,就无法提供 MainActivityComponent。检查错误模型 getCheckErrorsModel()
解决方案
推荐阅读
- python - 如果不是正确的 dtype,如何验证 dtypes 列并获取 name 列?
- c# - 您能获得 CombinedGeometry 或 GeometryGroup 对象的路径标记语法吗?
- charles-proxy - 按 Charles Proxy 中的请求标头过滤?
- ios - UIKit - 以编程方式禁用 Slide Over 和 Split View
- javascript - HTML:记忆游戏检查两张图片是否匹配的功能
- angular - 如何调用作为快递应用的云功能?
- node.js - react.js登录后如何重定向页面
- vhdl - VHDL 找到运算符“=”的“0”定义
- html - 如何在列 flex 布局中提供正确的高度和垂直滚动的非收缩 flex 子项?
- git - git post-receive 用于同一服务器上的多个工作树