0

我试图在我的 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.app.MyActivity 不需要为 my.android.lib.EventBus 绑定 my.android.app.MyModule

有谁可以告诉我我做错了什么以及我忘记了什么?

4

1 回答 1

2

ObjectGraph 类的实例可以通过调用 create() 静态方法获得。

尝试

objectGraph = ObjectGraph.create(new MyModule(this));

对于绑定错误,您必须将 EventBus 库添加到您的构建类路径中。

于 2013-02-14T14:33:18.623 回答