3

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 注釈付きフィールドが注入されることを願っています!

TestService は MainActivity によって注入されます。しかし、TestDao は null であり、私の contextProvider でもあります!

IoCModule クラスを定義する roboguice.xml ファイルも定義しました。

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

内側の @Inject が機能しない理由がわかりません!!

ご提案ありがとうございます。

ありがとうマルコ

4

1 に答える 1

2

モジュール定義を入れることを解決しました

requestStaticInjection( TestDaoOrm.class );
于 2012-08-20T13:38:31.357 に答える