Hirdetés

Új hozzászólás Aktív témák

  • kobe24

    tag

    Sziasztok!

    Dagger2 témában lenne problémám, remélem van itt valaki aki használja, és tud is segíteni.
    Probléma: szeretnék létrehozni egy olyan modult ami csak egy bizonyos fragment-ben érhető el. Viszont ez nem sikerül, ha a modult globálissá teszem, akkor működik, innen tudom, hogy nem azzal van a gond. Jelenleg így próbálom megoldani:

    FragmentsModule.kt
    @Module
    abstract class FragmentsModule {

    @ContributesAndroidInjector
    abstract fun contributeLoginFragment() : LoginFragment

    @ContributesAndroidInjector(modules = [UserFragmentModule::class])
    abstract fun contributeUserFragment() : UserFragment
    }

    UserFragmentModule.kt
    @Module
    class UserFragmentModule {

    @Provides
    @Singleton
    fun provideExtendedMediaPlayer() : ExtendedMediaPlayer = ExtendedMediaPlayer()

    @Provides
    @Singleton
    fun provideIAudioManager() : IAudioManager = AudioManager()

    @Provides
    @Singleton
    fun provideUserRepository() : UserRepository = UserRepository()
    }

    Itt keletkezik a hiba, folyamatosan azt írja, hogy nincs olyan metódus ami az IAudioManager osztályt létrehozná. Ha ezt az egész USerFragmentModule osztályt már az AppComponent interface modules tömbjében felsorolom, akkor jó az egész. Elvileg ennek működnie kéne, és kiváltaná azt, hogy subcomponent-eket kelljen létrehoznom. Amit találtam példaprogramokat ott is csak szimplán a ContributesAndroidInjector-t használták, nem volt semmi extra lépés.

Új hozzászólás Aktív témák