簡體   English   中英

“只能在常量表達式中使用const val”編譯時錯誤Dagger2 Kotlin

[英]“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"
    }
}

錯誤

https://github.com/BenMohammad/DaggerAppKotlin

您錯過了應用程序模塊文件中的打包行。

將此行package com.example.daggerappkotlin.di.module放在ApplicationModule文件的頂部

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM