2

I can't understand where is my error, I'm learning hilt and doing music app. In fragment I've coded @AndroidEntryPoint does is the trouble and supposed to be written a ActivityScopped? can some one olny where is my error suggest

i've viewed error: [Dagger/MissingBinding] androidx.lifecycle.ViewModelProvider.Factory cannot be provided without an @Provides-annotated method and other discuss but discuss same to me I haven't found

stack trace

D:\NCS\app\build\generated\source\kapt\debug\io\com\ncs\NCSApplication_HiltComponents.java:128: error: [Dagger/MissingBinding] com.google.android.exoplayer2.ExoPlayer cannot be provided without an @Provides-annotated method.
  public abstract static class SingletonC implements HiltWrapper_ActivityRetainedComponentManager_ActivityRetainedComponentBuilderEntryPoint,
                         ^
      com.google.android.exoplayer2.ExoPlayer is injected at
          io.com.ncs.exoplayer.MusicService.exoPlayer
      io.com.ncs.exoplayer.MusicService is injected at
          io.com.ncs.exoplayer.MusicService_GeneratedInjector.injectMusicService(io.com.ncs.exoplayer.MusicService) [io.com.ncs.NCSApplication_HiltComponents.SingletonC ? io.com.ncs.NCSApplication_HiltComponents.ServiceC]

application

@HiltAndroidApp
class NCSApplication: Application(){

}

AppModule

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

    @Singleton  
    @Provides
    fun provideMusicServiceConnection(
        @ApplicationContext context: Context
    ) = MusicServiceConnection(context)


    @Singleton
    @Provides
    fun provideGlideInstance(@ApplicationContext context: Context) =
        Glide.with(context).setDefaultRequestOptions(
            RequestOptions()
                .placeholder(R.drawable.ic_image)
                .error(R.drawable.ic_image)
                .diskCacheStrategy(DiskCacheStrategy.DATA)
        )
}

Service Module

@Module
@InstallIn(ServiceComponent::class)
object ServiceModule {


    @ServiceScoped
    @Provides
    fun provideMusicDatabase() = MusicDatabase()

    @ServiceScoped
    @Provides
    fun provideAudioAttributes() = AudioAttributes.Builder()
        .setContentType(C.CONTENT_TYPE_MUSIC)
        .setUsage(C.USAGE_MEDIA)
        .build()


    @ServiceScoped
    @Provides
    fun provideExoPlayer(                 
        @ApplicationContext context: Context,
        audioAttributes: AudioAttributes
    ) = ExoPlayer.Builder(context).apply {
        setAudioAttributes(audioAttributes,true)
        setHandleAudioBecomingNoisy(true)
    }

    @ServiceScoped
    @Provides                                  fun provideSourceFactory(
        @ApplicationContext context: Context
    ) = DefaultDataSourceFactory(context, Util.getUserAgent(context,"waltwe"))
}

0 Answers0