Java 匕首注入类使用匕首保持为空
我正在尝试将Java 匕首注入类使用匕首保持为空,java,android,dagger-2,dagger,Java,Android,Dagger 2,Dagger,我正在尝试将CacheManager的一个实例注入getTorDepository哪个Dagger可能成功,因为我没有收到任何与Dagger相关的错误。但是在getTorDepository中使用cacheManager时,我会得到一个NullPointerException public class GetTodoRepository { @Inject public CacheManager cacheManager; public RetrofitService
CacheManager
的一个实例注入getTorDepository
哪个Dagger可能成功,因为我没有收到任何与Dagger相关的错误。但是在getTorDepository
中使用cacheManager
时,我会得到一个NullPointerException
public class GetTodoRepository {
@Inject
public CacheManager cacheManager;
public RetrofitService retrofitService;
private ResultListener listener;
public GetTodoRepository(@NonNull ResultListener listener) {
this.retrofitService = new RetrofitService();
this.listener = listener;
}
}
@Module
public class AppModule {
private Application application;
public AppModule(Application application) {
this.application = application;
}
@Provides
@Singleton
public Context providesApplicationContext() {
return application.getApplicationContext();
}
@Provides
@Singleton
public CacheManager provideCacheManager(Context Context) {
return new CacheManager(Context);
}
}
@Singleton
@Component(modules = AppModule.class)
public interface TodoComponents {
void inject(MainViewModel mainViewModel);
void inject(CacheManager cacheManager);
void inject(GetTodoRepository getTodoRepository);
void inject(PostTodoRepository postTodoRepository);
}
1)在应用程序类中设置匕首(组件)
public class TodoApplication extends Application {
private static AppComponent components;
@Override
public void onCreate() {
super.onCreate();
components = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.build();
}
public static AppComponent getAppComponent() {
return components;
}
public GetTodoRepository(@NonNull ResultListener listener) {
this.listener = listener;
TodoApplication.getAppComponent().inject(this);
}
}
2)从注入目标类中的应用程序
类调用组件
对象
public class TodoApplication extends Application {
private static AppComponent components;
@Override
public void onCreate() {
super.onCreate();
components = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.build();
}
public static AppComponent getAppComponent() {
return components;
}
public GetTodoRepository(@NonNull ResultListener listener) {
this.listener = listener;
TodoApplication.getAppComponent().inject(this);
}
您的组件看起来像什么?@Md.Asaduzzaman组件类现在在问题中可见,您必须将
getToOrepository
注入dagger。你做了吗?@Md.Asaduzzaman我只做了我粘贴的东西。给匕首注射是什么意思?