2013-02-14 3 views
0

임 내 안드로이드 프로젝트에 몇 가지 의존성 주입을 추가하려고 인수 적용되지 않습니다메소드 GET (클래스 <T>는) 내가 내 모듈을 만들어 발견 한 것은 그래서 예를 들어 다음,

@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); 
    .... 
i '를

m 내가 확실히 놓친 것을 내가 잘못 또는 무엇을,하지만 내 일식은 나에게 오류 표시 :이 줄 objectGraph = ObjectGraph.get(new MyModule(this));

을에

The method get(Class) in the type ObjectGraph is not applicable for the arguments (MyModuleModule)

을하고 난 빌드를 할 노력하고있어 때 내가 얻을 :

No binding for my.android.lib.EventBus required by my.android.app.MyActivity for my.android.app.MyModule

누구나 내가 뭘 잘못하고 무엇을 잊어 버렸는지 말할 수 있습니까?

답변

2

ObjectGraph 클래스의 인스턴스는 create() static 메소드를 호출하여 얻을 수 있습니다.

는 빌드 클래스 경로에 EventBus 라이브러리를 추가해야합니다, 바인딩 오류

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

을보십시오.

+0

내 pom 파일에 추가 한 후 maven에 내 libjar를 클래스 패스에 추가 할 예정입니다. 그렇다면 sth을 추가해야합니까? – user902383

+0

음, Maven에 대해 많이 알지는 못했지만, EventBus 라이브러리가 클래스 경로를 구축하지 못했다고 분명히 말합니다. –

+0

당신이 옳았는지, 나는 눈치 채지 못했고 잘못된 수업을 사용했지만, 제 질문의 첫 부분은 여전히 ​​해결되지 않았습니다. 당신의 제안에 따라 "정적이 아닌 방법에 대한 정적 참조를 만들 수 없습니다"라는 오류가 발생했습니다. – user902383