Dagger 2. Не могу разобраться в чем ошибка!
Всем привет! Помогите пожалуйста разобраться с ошибкой Dagger 2. Вот то, что выдают мне логи. Я к сожалению новичок и не могу самостоятельно разобраться с проблемой.
D:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\di\component\RepositoryComponent.java:11: error: cannot find symbol
public abstract AppRepository getRepository();
^
symbol: class AppRepository
location: interface RepositoryComponentD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\di\module\RepositoryModule.java:10: error: cannot find symbol
public final AppRepository providesRepository$app_debug(@org.jetbrains.annotations.NotNull()
^
symbol: class AppRepository
location: class RepositoryModuleD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\di\module\ViewModelModule.java:23: error: cannot find symbol
AppRepository repository) {
^
symbol: class AppRepository
location: class ViewModelModuleD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\di\module\ViewModelModule.java:30: error: cannot find symbol
AppRepository repository) {
^
symbol: class AppRepository
location: class ViewModelModuleD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\domain\LampsViewModel.java:8: error: cannot find symbol
private final AppRepository mRepository = null;
^
symbol: class AppRepository
location: class LampsViewModelD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\domain\LampsViewModel.java:24: error: cannot find symbol
AppRepository mRepository) {
^
symbol: class AppRepository
location: class LampsViewModelD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\domain\SingleLampViewModel.java:8: error: cannot find symbol
private final AppRepository mRepository = null;
^
symbol: class AppRepository
location: class SingleLampViewModelD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\domain\SingleLampViewModel.java:21: error: cannot find symbol
AppRepository mRepository) {
^
symbol: class AppRepository
location: class SingleLampViewModelD:\Projects\AndroidStudioProjects\clean-architecture-android-materials\OsterrigLampLED\app\build\tmp\kapt3\stubs\debug\com\astar\osterriglampled\di\component\DatabaseComponent.java:6: error: com.astar.osterriglampled.di.component.DatabaseComponent is listed as a module, but is not annotated with @Module
Вот код AppRepository:
import com.astar.osterriglampled.repository.database.AppDatabase
import com.astar.osterriglampled.repository.database.entity.Lamp
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
class AppRepository(private val mainDatabase: AppDatabase) {
fun getAllLamps(): Single<List<Lamp>>? {
return Single.just(mainDatabase.lampDao().getLamps())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
fun getLampByGroups(id: Long): Single<List<Lamp>> {
return Single.just(mainDatabase.lampDao().getLampsByGroup(id))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
fun getLampById(id: Long): Single<Lamp> {
return Single.just(mainDatabase.lampDao().getLampById(id))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
}
Код RepositoryModule
package com.astar.osterriglampled.di.module
import AppRepository
import com.astar.osterriglampled.repository.database.AppDatabase
import dagger.Provides
class RepositoryModule {
@Provides
internal fun providesRepository(database: AppDatabase): AppRepository {
return AppRepository(database)
}
}
И код RepositoryComponent
@RepositoryScope
@Component(modules = [RepositoryModule::class], dependencies = [DatabaseComponent::class])
interface RepositoryComponent {
val repository: AppRepository
}
