Невозможно построить проект для создания зависимости Injection. Я успешно построил его на Java, но при преобразовании каждого файла в Kotlin (действительно заинтригованный сейчас ...) проект не создается, поскольку есть ошибка времени компиляции
"Только 'const val' могут быть использованы n константных выражений
Неразрешенная ссылка: ApplicationModule
Аргумент аннотации должен быть константой времени компиляции "
Понятно для правого разработчика Kotlin, это было бы не из легких, что изменить, но это оставило меня в замешательстве.
Поскольку ApplicationModule не импортирует, я не могу построить проект.
ApplicationComponent
@Singleton
@Component(modules = [ApplicationModule::class])
interface ApplicationComponent {
fun inject(application: MyApplication)
@get:ApplicationContext
val context: Context
val networkService: NetworkService
val databaseService: DatabaseService
}
ApplicationModule
@Module
class ApplicationModule(private val application: MyApplication) {
@ApplicationContext
@Provides
internal fun provideContext(): Context {
return application
}
@Provides
@DatabaseInfo
internal fun provideDatabaseName(): String {
return "dummy_db"
}
@Provides
@DatabaseInfo
internal fun provideDatabaseVersion(): Int? {
return 1
}
@Provides
@NetworkInfo
internal fun provideApiKey(): String {
return "SOME_API_KEY"
}
}
https://github.com/BenMohammad/DaggerAppKotlin