android dagger无法提供注入

时间:2013-09-10 04:03:12

标签: android dependency-injection dagger

我想在我的Android应用程序中包含匕首。 我有两个类 FakeServiceConnector NetServiceConnector ,它实现 ServiceConnector 接口

所以我把代码放在我的活动中

@Inject
ServiceConnector serviceConnector;

Abd我创建了解析依赖项的提供程序

@Module
public class ServiceConnectorProvider {

 @Provides
 @Singleton
 public ServiceConnector provideServiceConnector()
 {
    return new FakeServiceConnector();
 }
}

但是当我按下按钮时,serviceConnector为null。 所以我的问题是:

1)我在我的libs中只包含dagger-1.1.0.jar和java.inject.jar是否足以安装正确的匕首?

2)我是否需要编写比我为dagger编写的代码更多的代码,例如创建Android

1 个答案:

答案 0 :(得分:4)

是的,您需要编写更多代码才能使其正常工作。

首先,您必须在模块中指定要注入的类:

@Module(
    injects = YourClass.class
)

必须进行注射后:

ObjectGraph objectGraph = ObjectGraph.create(new ServiceConnectorProvider());
YourClass yourClassObject = objectGraph.get(YourClass.class);

或:

ObjectGraph objectGraph = ObjectGraph.create(new ServiceConnectorProvider());
YourClass yourClassObject = new YourClass(...);
objectGraph.inject(yourClassObject);

查看基本示例herehere或搜索GitHub了解更多内容。