Ошибка: [Dagger/MissingBinding]. Невозможно предоставить без метода с аннотацией @Provides. ⇐ Android
-
Anonymous
Ошибка: [Dagger/MissingBinding]. Невозможно предоставить без метода с аннотацией @Provides.
Я пытаюсь использовать Hilt для внедрения репозитория погоды в мою модель представления, но получаю следующее сообщение об ошибке:
gffgfdfdfdfdfdfdfdfdf
WeatherDao невозможно предоставить без метода с аннотацией @Provides.
публичный абстрактный статический класс SingletonC реализует WeatherApplication_GeneratedInjector
Погода DAO:
@Дао интерфейс WeatherDao { @Insert(onConflict = OnConflictStrategy.REPLACE) приостановить веселье InsertWeatherItem(weatherItem: WeatherItem) @Query("УДАЛИТЬ ИЗ WEATHERITEM WHERE cityName = :cityName") приостановить веселье deleteWeatherItem(cityName: String) @Query("SELECT * FROM WEATHERITEM WHERE cityId = :id") fun getWeatherItem(id: Int): Flow @Query("ВЫБРАТЬ * ИЗ ПОГОДЫ") весело getAllWeatherItems(): Flow } Хранилище погоды:
class WeatherRepository @Injectconstructor(private val WeatherDao: WeatherDao) { приостановить веселье InsertWeatherItem(weatherItem: WeatherItem) = WeatherDao.insertWeatherItem(weatherItem) приостановить веселье deleteWeatherItem(cityName: String) = WeatherDao.deleteWeatherItem(cityName) fun getWeatherItem(id: Int): Flow = WeatherDao.getWeatherItem(id) весело getAllWeatherItems(): Flow = WeatherDao.getAllWeatherItems() } База данных погоды:
@Database(entities = [WeatherItem::class], версия = 1) абстрактный класс WeatherDatabase :RoomDatabase(){ абстрактное развлечение WeatherDao(): WeatherDao } Модуль погоды:
@Module @InstallIn(ActivityComponent::class) объект WeatherModule { @Обеспечивает @Синглтон весело обеспечитьDatabase (@ApplicationContext context: Context): WeatherDatabase { вернуть Room.databaseBuilder( контекст, WeatherDatabase::class.java, «База данных погоды») .fallbackToDestructiveMigration() .строить() } @Обеспечивает @Синглтон весело обеспечитьUserDao(weatherDatabase: WeatherDatabase): WeatherDao { вернуть WeatherDatabase.weatherDao() } @Обеспечивает @Синглтон весело обеспечитьWeatherRepository(weatherDao: WeatherDao): WeatherRepository { вернуть WeatherRepository (weatherDao) } } Модель просмотра погоды:
@HiltViewModel класс WeatherViewModel @Inject конструктор( частный вал WeatherRepository: WeatherRepository, ) : ViewModel() Основная деятельность:
@AndroidEntryPoint класс MainActivity : ComponentActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val viewModel: WeatherViewModel от viewModels() setContent { WindSpellTheme(darkTheme = darkTheme) { Поверхность( модификатор = Модификатор.fillMaxSize(), цвет = MaterialTheme.colorScheme.background ) { MainScreen (viewModel) { } } } } } } Применение:
@HiltAndroidApp класс WeatherApplication: Приложение() Версия рукояти — 2.47
Я пытаюсь использовать Hilt для внедрения репозитория погоды в мою модель представления, но получаю следующее сообщение об ошибке:
gffgfdfdfdfdfdfdfdfdf
WeatherDao невозможно предоставить без метода с аннотацией @Provides.
публичный абстрактный статический класс SingletonC реализует WeatherApplication_GeneratedInjector
Погода DAO:
@Дао интерфейс WeatherDao { @Insert(onConflict = OnConflictStrategy.REPLACE) приостановить веселье InsertWeatherItem(weatherItem: WeatherItem) @Query("УДАЛИТЬ ИЗ WEATHERITEM WHERE cityName = :cityName") приостановить веселье deleteWeatherItem(cityName: String) @Query("SELECT * FROM WEATHERITEM WHERE cityId = :id") fun getWeatherItem(id: Int): Flow @Query("ВЫБРАТЬ * ИЗ ПОГОДЫ") весело getAllWeatherItems(): Flow } Хранилище погоды:
class WeatherRepository @Injectconstructor(private val WeatherDao: WeatherDao) { приостановить веселье InsertWeatherItem(weatherItem: WeatherItem) = WeatherDao.insertWeatherItem(weatherItem) приостановить веселье deleteWeatherItem(cityName: String) = WeatherDao.deleteWeatherItem(cityName) fun getWeatherItem(id: Int): Flow = WeatherDao.getWeatherItem(id) весело getAllWeatherItems(): Flow = WeatherDao.getAllWeatherItems() } База данных погоды:
@Database(entities = [WeatherItem::class], версия = 1) абстрактный класс WeatherDatabase :RoomDatabase(){ абстрактное развлечение WeatherDao(): WeatherDao } Модуль погоды:
@Module @InstallIn(ActivityComponent::class) объект WeatherModule { @Обеспечивает @Синглтон весело обеспечитьDatabase (@ApplicationContext context: Context): WeatherDatabase { вернуть Room.databaseBuilder( контекст, WeatherDatabase::class.java, «База данных погоды») .fallbackToDestructiveMigration() .строить() } @Обеспечивает @Синглтон весело обеспечитьUserDao(weatherDatabase: WeatherDatabase): WeatherDao { вернуть WeatherDatabase.weatherDao() } @Обеспечивает @Синглтон весело обеспечитьWeatherRepository(weatherDao: WeatherDao): WeatherRepository { вернуть WeatherRepository (weatherDao) } } Модель просмотра погоды:
@HiltViewModel класс WeatherViewModel @Inject конструктор( частный вал WeatherRepository: WeatherRepository, ) : ViewModel() Основная деятельность:
@AndroidEntryPoint класс MainActivity : ComponentActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val viewModel: WeatherViewModel от viewModels() setContent { WindSpellTheme(darkTheme = darkTheme) { Поверхность( модификатор = Модификатор.fillMaxSize(), цвет = MaterialTheme.colorScheme.background ) { MainScreen (viewModel) { } } } } } } Применение:
@HiltAndroidApp класс WeatherApplication: Приложение() Версия рукояти — 2.47
Мобильная версия