Fehler: Symbol @dagger.hilt.InstallIn kann nicht gefunden werden (value = {ApplicationComponent.class})

Lesezeit: 2 Minuten

Nach dem Upgrade des Dolchgriffs (Version: 2.31-alpha) ApplicationComponent.class nicht finden können. Was ist die Alternative für a Component wie RoomDatabase?

@Module
@InstallIn(ApplicationComponent::class)
class RoomModule() {
private val DATABASE_NAME = "salat_time"

@Singleton
@Provides
fun provideRoomDatabase(@ApplicationContext appContext: Context) = Room.databaseBuilder(
    appContext,
    AppDatabase::class.java,
    DATABASE_NAME
).createFromAsset("db/$DATABASE_NAME.sqlite").build()

@Singleton
@Provides
fun provideLocalSalatRepository(database: AppDatabase) = LocalSalatRepository(database)

@Singleton
@Provides
fun provideDistrictRepository(database: AppDatabase) = DistrictRepository(database)
}

  • stackoverflow.com/questions/65266636/…

    – Said Lotfi

    1. Februar 2021 um 9:46 Uhr

ApplicationComponent ist in der Dagger-Version veraltet 2.30
ApplicationComponent in der Dagger-Version entfernt 2.31

Alternative SingletonComponent sollte stattdessen verwendet werden ApplicationComponent

@Module
@InstallIn(SingletonComponent::class)
class RoomModule() {
   . . .
}

  • Notiz: Für diejenigen, die immer noch nicht finden können SingletonComponent beim Importieren ist es in dagger.hilt.components.SingletonComponent Paket. Alle anderen Components sind in dagger.hilt.android.components Paket.

    – Pranav Karnik

    24. März 2021 um 7:25 Uhr

Anwendungskomponente wird umbenannt in Singleton-Komponente

Einfach importieren:

import dagger.hilt.components.SingletonComponent

und kommentieren Sie Ihr Modul wie folgt:

@Module
@InstallIn(SingletonComponent::class)

Da ApplicationComponent in der neueren Version von daggerHilt entfernt wird und ich diese Abhängigkeiten für Dolchgriff in der Gradle-Datei auf App-Ebene verwende:

//Dagger - Hilt
implementation "com.google.dagger:hilt-android:2.31-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"

implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
kapt "androidx.hilt:hilt-compiler:1.0.0"

Zusätzlich zur akzeptierten Antwort aktualisieren Sie bitte unbedingt die neueste Griffversion, sonst bleiben Sie hängen KaptExecution-Fehler.

Aktuelle Version ext.hilt_version = '2.33-beta'

Wenn Sie @InstallIn nicht benötigen, können Sie es jederzeit explizit deaktivieren.

Alternatively, the check can be disabled at the individual module level by annotating the module with @DisableInstallInCheck.

Wie erwähnt in https://dagger.dev/hilt/flags.html

Wie

@DisableInstallInCheck
@Module
class MyAwesomeModule

Benutzer-Avatar
Saqib00786

@Module
@InstallIn(SingletonComponent::class)
object AppModule {

    @Provides
    @Singleton
    fun mProvidersTaskDatabase(app: Application) : TaskDataBase{
        return Room.databaseBuilder(
            app,
            TaskDataBase::class.java,
            "Task_db"
        ).build()
    }

    @Provides
    @Singleton
    fun mProvidersTaskRepository (dataBase: TaskDataBase) : TaskRepository{
        return TaskRepositoryImpl(dataBase.mTaskDao)
    }
}

1270270cookie-checkFehler: Symbol @dagger.hilt.InstallIn kann nicht gefunden werden (value = {ApplicationComponent.class})

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy