android-odeon icon indicating copy to clipboard operation
android-odeon copied to clipboard

App crash when deleting a track from search results

Open thibseisel opened this issue 4 years ago • 0 comments

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:

  1. Search a track
  2. Select the action to delete the track from search results
  3. 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)

thibseisel avatar Mar 07 '20 12:03 thibseisel