我试图在我的android项目中添加一些依赖注入,所以按照我发现我创建模块的示例
@Module(entryPoints = {MyActivity.class})
public class MyModule {
private final Context context;
public MyModule (Context context) {
this.context = context.getApplicationContext();
}
@Provides
@Singleton
Context applicationContext() {
return context;
}
@Provides
@Singleton
EventBus provideEventBus() {
return EventBusFactory.create();
}
}
我有我的申请:
public class MyApplication extends Application{
private ObjectGraph objectGraph;
@Override
public void onCreate() {
super.onCreate();
objectGraph = ObjectGraph.get(new MyModule(this));
}
public ObjectGraph getObjectGraph() {
return objectGraph;
}
}
和活动
public class MyActivity extends Activity {
@App
MyApplication application;
@Inject
EventBus eventBus;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ObjectGraph objectGraph = application.getObjectGraph();
objectGraph.inject(this);
....
我不确定我做错了什么或我错过了什么,但我的日食显示错误:
ObjectGraph类型中的get(Class)方法不适用 参数(MyModuleModule)
在此行objectGraph = ObjectGraph.get(new MyModule(this));
当我正在尝试构建时,我得到:
是谁能告诉我我做错了什么以及我忘了什么?不需要my.android.lib.EventBus的绑定 my.android.app.MyModule的my.android.app.MyActivity
答案 0 :(得分:2)
可以通过调用create()静态方法获得ObjectGraph类的实例。
尝试
objectGraph = ObjectGraph.create(new MyModule(this));
对于绑定错误,您必须将EventBus库添加到构建类路径中。