2012-09-04 8 views
0

저는 Roboguice 2.0을 사용하여 Android 앱을 개발 중입니다.안드로이드 서비스 의존성 주입

지금은 예외입니다. 이런 식으로 내 맞춤 바인딩을 삽입하려고하는데 작동하지 않습니다.

RoboGuice.setBaseApplicationInjector(
      this, 
      RoboGuice.DEFAULT_STAGE, 
      Modules.override(RoboGuice.newDefaultRoboModule(this)) 
       .with(
        new KoliseoModule(), 
        new DatastoreModule(this), 
        new ServiceModule() 
        )); 


public class ServiceModule extends AbstractModule { 

@Override 
protected void configure() { 
     bind(JsonCheckinTimestampService.class).to(JsonCheckinTimestampServiceImpl.class); 
    bind(PerformanceService.class).to(PerformanceServiceImpl.class); 
    bind(ShowService.class).to(ShowServiceImpl.class); 
    bind(TicketService.class).to(TicketServiceImpl.class); 
    bind(ValidationStatisticsService.class).to(ValidationStatisticsServiceImpl.class); 
} 

}

어떤 아이디어 :

@Inject 
private TicketService ticketService; 

@Inject 
private PerformanceService performanceService; 

그들은이 같은 바인더 제본 한 (첫 번째 사용자 지정 응용 프로그램 컨텍스트는)?

감사

+0

정확히 작동하지 않는 항목은 무엇입니까? 귀하의 코드에서 setBaseApplicationInjector 문은 어디에 있습니까? xml 파일의 모듈 파일 목록이 아닌이 명령문을 사용하는 특정 이유가 있습니까? – Christine

+0

이렇게 할 수 있는지 몰랐습니다. –

+0

하지만 내 문제가 해결되지 않고 수동으로해야합니다. –

답변

0

그것의 아주 아마와 아마 응용 프로그램의 응용 프로그램 서브 클래스는 당신이 시도 할 수 있도록 인스턴스의 나머지가 생성되기 전에 인스턴스화 &로드되었는지 garanteed. "MyApplication extends Application"클래스를 만들고 "onCreate()"에서 설정을 수행하십시오. 매니페스트에서 선언하는 것을 잊지 마십시오.

0

RoboListActivity를 확장하지 못했습니다. 감사!

+0

당신은 Robo 클래스를 확장하지 않습니다. Robo는 주입하지 않습니다 :-) – Christine