Jetpack:Cannot create an instance of class myViewModel...解決方法

剛剛在用mvvm寫一個音樂播放器的時候遇到了這個問題,用的是正常的viewmodel實例化操作,我特意打開之前的項目來看確定沒有寫錯代碼之後,還百度了一下,好像並沒有什麼準確的答覆,

報錯大致如下:

Process: com.example.example08, PID: 2895
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.homework/com.example.example08.MainActivity}: java.lang.RuntimeException: Cannot create an instance of class com.example.example08.ViewModel.myViewModel

不過,我自己研究了一下發現是和myViewModel這個我自定義類有關,

看一下正常實例化時候的代碼:

myViewModel = new ViewModelProvider(this).get(Music.class);

可以看出來myViewModel轉換爲ViewModel的時候調用了ViewModelProvider這個方法,這個方法貌似是通過調用myViewModel這個自定義類的默認構造函數來實現實例化的。

雖然不知道具體原因,但是我刪掉自定義類myViewModel中的構造函數之後就可以正常實例化了

不過沒有構造函數有點噁心就是賦值時要一個一個set…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章