注入的字段在RoboGuice 2.0中为null

时间:2012-08-17 09:53:30

标签: android dependency-injection roboguice

我是Roboguice的新手,我想在我的新Android应用程序中使用它。

我有一个扩展RoboActivity的测试活动。

public class MainActivity extends RoboActivity {
    @Inject 
    private TestService testService;

    ....        
}

这是我的TestService类:

public class TestService {

    @Inject
    private TestDao testDao;

    @Inject 
    protected static Provider<Context> contextProvider;

    public TestService(){
        Log.d("TEST_SERVICE", "Constructor test");
    }

    public Test getById(Integer id) throws Exception{
        return testDao.queryForId(id);
    }
}

我希望注入内部的@Injected带注释字段并注入Class!

TestA由MainActivity注入。但是TestDao是null,也是我的contextProvider!

我还定义了一个roboguice.xml文件,它定义了我的IoCModule类:

public class IoCModule extends AbstractModule{
    @Override
    protected void configure() {
        bind(TestDao.class).to(TestDaoOrm.class);
    }
}

我不知道为什么内部@Inject不起作用!!

感谢您的任何建议!

谢谢 马可

1 个答案:

答案 0 :(得分:2)

我已经解决了我的模块定义

requestStaticInjection( TestDaoOrm.class );