ViewModel not create instance when we make roomDB in module level (not in app level).
FATAL EXCEPTION: DefaultDispatcher-worker-1 Process: documentreader.pdfreader.doc.pdf.reader.office, PID: 22010 java.lang.RuntimeException: Cannot create an instance of class com.example.filereader.roomDb.FileItemViewModel
here is my view ViewModel class:
class FileItemViewModel(val application: Application,
val repository: FileItemRepository) : AndroidViewModel(application) {
val allFileItems: LiveData<List<FileItem>> = repository.allFileItems
fun insertIfNotExists(item: FileItem) = viewModelScope.launch(Dispatchers.Main) {
Log.i("checkfav", "insertIfNotExists: enter ")
val existingItem = repository.getFileItemByPath(item.filePath)
if (existingItem == null) {
Log.i("checkfav", "insertIfNotExists: existingItem ")
repository.insert(item)
} else {
remove(existingItem)
}
}
fun remove(item: FileItem) = viewModelScope.launch {
repository.remove(item)
}
fun update(fileItem: FileItem) = viewModelScope.launch {
repository.update(fileItem)
}
}
This is how i create instance of my viewmodel class
var fileItemViewModel :FileItemViewModel? = null
activity?.let {
fileItemViewModel = ViewModelProvider(it)[FileItemViewModel::class.java]
}
Thank you in advance for your assistance!