作者:p情绪控 | 来源:互联网 | 2023-01-28 11:46
1> azizbekian..:
我相信你忘记了@ContributesAndroidInjector
注释:
@Module
public abstract class ActivityModule {
@ContributesAndroidInjector
abstract ProductListActivity contributeProductListActivity();
@ContributesAndroidInjector
abstract ProductDetailsActivity contributeProductDetailsActivity();
}
并包括ViewModelModule
在AppModule
:
@Module(includes = ViewModelModule.class)
class AppModule {
...
}
看到你写的这段代码:
@Provides
@Singleton
ProductListRepository provideProductListRepository(ProductListRepository repository) {
return repository;
}
你期望发生什么?你告诉匕首"嘿,匕首,每当我要求你提供给我ProductListRepository
然后使用ProductListRepository
" 创建(返回)该对象时.那不会有用.
大多数可能你想要的是"嘿,匕首,每当我要求你提供一个实现,ProductListRepository
然后使用ProductListRepositoryImpl
" 创建(返回)该对象:
@Provides
@Singleton
ProductListRepository provideProductListRepository(ProductListRepositoryImpl repository) {
return repository;
}
可以用以下代替:
@Binds
@Singleton
abstract ProductListRepository provideProductListRepository(ProductListRepositoryImpl repository);
看一些教程.你有很多问题.