无法构建项目以创建依赖项注入。我已经成功地用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"
}
}
答案 0 :(得分:2)
您错过了Application模块文件中的打包行。
将此行放入package com.example.daggerappkotlin.di.module
在您的ApplicationModule文件顶部