i have a simple Fragment and viewmodel that i wish to use inside the fragment, however it keeps throwing the below error:
Caused by: org.koin.core.error.NoBeanDefFoundException: No definition found for class:'com.me.ui.MovieListViewModel'. Check your definitions!
THe viewmodel can be loaded fine on the activity clas but not on the fragment.
Fragment code below
class TopMoviesFragment : BaseFragment() {
private val movieListViewModel: MovieListViewModel by viewModel()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
movieListViewModel.doSomething()
viewmodel code
class MovieListViewModel constructor(private val someData: SomeData) : ViewModel() {
fun doSomething(){
someData.do()
}
}
Koin setup
object AppComponent {
val getAllModules = listOf(MainAppModule,
ANotherMOdule,
networkModule,
uiModule)
}
val uiModule = module {
factory { SOmeData(get()) }
viewModel { MovieListViewModel(get()) }
}
class MovieListApp : Application() {
override fun onCreate() {
super.onCreate()
startKoin{
// Koin Android logger
androidLogger()
//inject Android context
androidContext(this@MovieListApp)
AppComponent.getAllModules}
}
}