java Dagger 2无法初始化
当我编译我的Android项目时,我发现了这样的错误:
错误:(15,13)错误:安卓。所容纳之物如果没有@Provides注释的方法,则无法提供上下文。 安卓所容纳之物上下文在com上提供。。。。。。迪。组件。应用组件。getContext()
我的组件:
@Singleton
@Component(modules = {AppModule.class})
public interface AppComponent {
Context getContext();
DataManager getDataManager();
}
我的模块:
@Module
public class AppModule {
protected final Application mApplication;
public AppModule(Application application) {
mApplication = application;
}
@Provides
@Singleton
Application provideApplication() {
return mApplication;
}
@Provides
@ApplicationContext
@Singleton
Context provideContext() {
return mApplication;
}
@Provides
@Singleton
DataManager provideDataManager() {
return new DataManager();
}
}
# 1 楼答案
您的组件表示它可以提供
Context
:当它只知道一个
@ApplicationContext Context
(注意限定符?):您可以删除
@ApplicationContext
限定符,只从模块中提供一个Context
,如果您试图同时提供活动上下文,这可能会造成阻碍,或者保留限定符并实际提供限定的上下文:如果试图使用/注入应用程序上下文,还需要使用限定符: