0
我试着去添加一些依赖注入在我的Android项目,所以下面的例子中我发现我创建了模块在类型ObjectGraph GET方法(类<T>)不适用于参数
@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);
....
我”不确定自己是否错过了什么我做错了还是什么,但是我的日食显示我的错误:
The method get(Class) in the type ObjectGraph is not applicable for the arguments (MyModuleModule)
在这一行objectGraph = ObjectGraph.get(new MyModule(this));
,当我试图做构建我得到:
No binding for my.android.lib.EventBus required by my.android.app.MyActivity for my.android.app.MyModule
任何人都可以告诉我我做错了什么,我忘了什么?
我希望Maven将我的lib jar添加到我的pom文件后添加到我的类路径中,那么我应该做些什么吗? – user902383 2013-02-14 14:43:11
嗯,我不知道muchabout Maven,但错误显然表示EventBus库不在构建类路径。 – 2013-02-14 15:00:19
你是对的,我没有注意到,我使用了错误的类,但我的问题的第一部分仍然没有解决,我遵循你的建议后,我得到了“无法对非静态方法进行静态引用”错误 – user902383 2013-02-14 16:21:26