Hilt не может создаться Inject из-за разницы Scope
Пробую создать inject в класс
class TracksRepository @Inject constructor(
private var dao: TrackDao,
private var service: TracksApi,
) {
в то время как Dao создается в ActivityScope(Нужно только в Activity)
@Module
@InstallIn(ActivityComponent::class)
object RoomModule {
@ActivityScoped
@Provides
fun provideDataBase(
@ActivityContext context: Context
): TrackDataBase =
Room.databaseBuilder(
context,
TrackDataBase::class.java,
Constant.BASE_NAME
).allowMainThreadQueries()
.build()
@Provides
fun provideTrackDao(database: TrackDataBase): TrackDao = database.trackDao()
service(TracksApi) создается в SingoltonScope
@Module
@InstallIn(SingletonComponent::class)
object RetrofitModule {
@Singleton
@Provides
fun provideRetrofit(client: OkHttpClient): Retrofit =
Retrofit.Builder()
.baseUrl(Constant.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build()
@Provides
fun provideTracksApi(retrofit: Retrofit): TracksApi = retrofit.create(TracksApi::class.java)
Из-за чего думаю и получаю данную ошибку
: error: [Dagger/MissingBinding] com.e*.TrackDao cannot be provided without an @Provides-annotated method.
public abstract static class SingletonC implements App_GeneratedInjector,