ObjectGraph类型中的方法get(Class <t>)不适用于参数</t>

时间:2013-02-14 14:25:25

标签: android dagger

我试图在我的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

是谁能告诉我我做错了什么以及我忘了什么?

1 个答案:

答案 0 :(得分:2)

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

尝试

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

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