Cannot create an instance of class ViewModel

后端 未结 23 2657
[愿得一人]
[愿得一人] 2020-12-05 12:37

I am trying to write a sample app using Android architecture components and but even after trying for days I could not get it to work. It gives me the above exception.

23条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-05 13:17

    I got this after migrating to AndroidX.

    There's a bug in androidx.lifecycle:lifecycle-viewmodel:2.0.0-beta01 where Proguard removes the constructor.

    https://issuetracker.google.com/issues/112230489

    Fix by upgrading to 2.0.0, and remember to update your proguard rules if needed.

    My error message looked like this:

    java.lang.RuntimeException: Cannot create an instance of class my.custom.viewmodel.CustomViewModel
    at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:202)
    at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:135)
    at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:103)
    ......
    Caused by: java.lang.NoSuchMethodException:  [class android.app.Application]
    at java.lang.Class.getConstructor0(Class.java:2204)
    at java.lang.Class.getConstructor(Class.java:1683)
    at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:200)
    ... 34 more
    
    
      androidx.test.espresso.PerformException: Error performing 'single click - At Coordinates: 539, 1167 and precision: 16, 16' on view 'with id: my.test:id/button_return_to_main_menu'.
    at androidx.test.espresso.PerformException$Builder.build(PerformException.java:82)
    at androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:79)
    .....
    Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{my.custom.domain.MainActivity}: java.lang.RuntimeException: Cannot create an instance of class my.custom.viewmodel.CustomViewModel
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
    

提交回复
热议问题