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"))
}