So, I did change the dependency Map into App Job Creator. It is now as:
@Singleton
class AppJobCreator
@Inject constructor(): JobCreator {
@Inject
lateinit var jobs: Map<String, Provider<Job>>
override fun create(tag: String): Job? {
val jobProvider = jobs[tag]
return jobProvider?.get()
}
}
After cleaning an building again, it now shows the following on building exception regarding Dagger2 dependency injection. What could you suggest? Sorry but I am quite new also with Dagger2. That being said I think I'm getting confused.
Error:(9, 2) error: [dagger.android.AndroidInjector.inject(T)] java.util.Map<java.lang.String,?
extends javax.inject.Provider<com.evernote.android.job.Job>> cannot be provided without an
@Provides-annotated method.
public abstract interface AppComponent {
^
java.util.Map<java.lang.String,? extends
javax.inject.Provider<com.evernote.android.job.Job>> is injected at
mx.jairaviles.androidevernotejobexample.core.job.AppJobCreator.jobs
mx.jairaviles.androidevernotejobexample.core.job.AppJobCreator is injected at
mx.jairaviles.androidevernotejobexample.di.module.JobsModule.provideJobManager(โฆ,
appJobCreator)
com.evernote.android.job.JobManager is injected at
mx.jairaviles.androidevernotejobexample.main.MainPresenter.<init>(โฆ, mJobManager)
mx.jairaviles.androidevernotejobexample.main.MainPresenter is injected at
mx.jairaviles.androidevernotejobexample.main.MainActivity.presenter
mx.jairaviles.androidevernotejobexample.main.MainActivity is injected at
dagger.android.AndroidInjector.inject(arg0)