我正在开发一个具有匕首依赖关系的Android应用程序。通过构造函数注入注入类时,它会抛出一个无法找到符号的错误。如果我通过模块内定义的@Provides
方法提供依赖,那么一切正常。
代码:
public class SixthGenericTest {
@Inject
FirstTest firstTest;
@Inject
public SixthGenericTest()
{
Injection.create().getAppComponent().inject(this);
}
public String getData(){
return firstTest.getTestName();
}
}
@Singleton
@Component(modules = {FirstModule.class})
public interface AppComponent {
void inject(SixthGenericTest sixthGenericTest);
}
我得到的错误:
错误:(19,28)错误:找不到符号方法 injectMembers(MembersInjector,SixthGenericTest)
答案 0 :(得分:1)
升级您的匕首版本
dependencies {
compile 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'
}
答案 1 :(得分:-2)
您不需要注入Injection.create().getAppComponent().inject(this);
@Inject
带注释的构造足够,因为它会自动添加到图表中,您可以将范围添加到您的类名之上
@Singleton
public class SixthGenericTest {
FirstTest firstTest;
@Inject
public SixthGenericTest( FirstTest firstTest )
{
this.firstTest = firstTest;
}
public String getData()
{
return firstTest.getTestName();
}
}
并从组件中删除:
void inject(SixthGenericTest sixthGenericTest);