Я начал переносить приложение Dagger на Hilt, сначала я конвертирую AppComponent в автоматически сгенерированный ApplicationComponent Hilt. Поэтому я добавил аннотацию @InstallIn(ApplicationComponent::class)
к каждому модулю, относящемуся к этому компоненту.
Теперь я получаю следующую ошибку:
ошибка: [Hilt] Все модули должны быть статическими и использовать статические методы предоставления или иметь видимый конструктор без аргументов.
Он указывает на этот модуль:
@InstallIn(ApplicationComponent::class)
@Module
class AccountModule(private val versionName: String) {
@Provides
@Singleton
fun provideComparableVersion(): ComparableVersion {
return ComparableVersion(versionName)
}
}
Ранее в Dagger можно было передавать аргументы в конструктор. Похоже, Хилт этого не допускает.
Как передать аргументы модулю Hilt?
versionName
внутри модуля, а не передавать его извне. Как это сделать, зависит от того, как вы в настоящее время вычисляете это значение. - person Nitrodon   schedule 06.07.2020BuildConfig
. Что ж, я думаю, что смогу получить его оттуда внутри модуля, как было предложено. - person Micer   schedule 07.07.2020