[英]“only const val can be used in constant expressions” compile time error Dagger2 Kotlin
無法構建項目以創建依賴項注入。 我成功地用Java構建了它,但是在將每個文件轉換成Kotlin(現在真的很感興趣...)時,由於編譯時錯誤,項目無法構建
“只能在n個常量表達式中使用'const val'未解析的引用:ApplicationModule批注參數必須是編譯時間常量”
對於正確的Kotlin開發人員而言,這是可以理解的更改,但這讓我非常困惑。
由於ApplicationModule無法導入,因此無法構建項目。
應用組件
@Singleton
@Component(modules = [ApplicationModule::class])
interface ApplicationComponent {
fun inject(application: MyApplication)
@get:ApplicationContext
val context: Context
val networkService: NetworkService
val databaseService: DatabaseService
}
應用模塊
@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"
}
}
您錯過了應用程序模塊文件中的打包行。
將此行package com.example.daggerappkotlin.di.module
放在ApplicationModule文件的頂部
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.