android-odeon
android-odeon copied to clipboard
App crash when deleting a track from search results
Version: 2.0.2
Summary:
It seems that HomeViewModel
is not correctly retrieved from SearchFragment
and is recreated instead, which is not desirable.
Reproducible steps:
- Search a track
- Select the action to delete the track from search results
- In the shown dialog, press OK to confirm
Stacktrace:
2020-03-07 13:32:56.928 E/AndroidRuntime: FATAL EXCEPTION: main
Process: fr.nihilus.music.debug, PID: 21748
java.lang.RuntimeException: Cannot create an instance of class fr.nihilus.music.library.HomeViewModel
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:221)
at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)
at fr.nihilus.music.library.songs.DeleteTrackDialog.getViewModel(Unknown Source:7)
at fr.nihilus.music.library.songs.DeleteTrackDialog.onDelete(DeleteTrackDialog.kt:51)
at fr.nihilus.music.library.songs.DeleteTrackDialog.access$onDelete(DeleteTrackDialog.kt:33)
at fr.nihilus.music.library.songs.DeleteTrackDialog$onCreateDialog$1.onClick(DeleteTrackDialog.kt:40)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Caused by: java.lang.InstantiationException: java.lang.Class<fr.nihilus.music.library.HomeViewModel> has no zero argument constructor
at java.lang.Class.newInstance(Native Method)
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:219)
at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)
at fr.nihilus.music.library.songs.DeleteTrackDialog.getViewModel(Unknown Source:7)
at fr.nihilus.music.library.songs.DeleteTrackDialog.onDelete(DeleteTrackDialog.kt:51)
at fr.nihilus.music.library.songs.DeleteTrackDialog.access$onDelete(DeleteTrackDialog.kt:33)
at fr.nihilus.music.library.songs.DeleteTrackDialog$onCreateDialog$1.onClick(DeleteTrackDialog.kt:40)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)