Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Caused by: java.lang.NoSuchMethodException: <init> [class android.app.Application] - viewmodel

I am creating my own viewmodel in my android app.
When the app is launched it's crashing and I got the error

"Caused by: java.lang.NoSuchMethodException: [class android.app.Application]"

1. view model class:

public class MainViewModel extends AndroidViewModel implements OnCommunicationListener {
    
public MainViewModel(@NonNull Application application, DeviceData deviceData) {
        super(application);

….
}

2. view model factory

public class ViewModelFactory extends ViewModelProvider.AndroidViewModelFactory {

    @NonNull
    private final Application application;
    private final DeviceData deviceData;

    public ViewModelFactory(@NonNull Application application, DeviceData deviceData) {
        super(application);
        this.application = application;
        this.deviceData = deviceData;
    }

    @NonNull
    @Override
    public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
        if (modelClass.isAssignableFrom(MainViewModel.class)) {
            return (T) new MainViewModel(application, deviceData);
        }
        throw new IllegalArgumentException("Unknown ViewModel class");
    }
}

3. Main activity class

 viewModel = ViewModelProviders.of(this).get(MainViewModel.class);

App crashes when the following line executed in the main activity

 viewModel = ViewModelProviders.of(this).get(MainViewModel.class);
like image 990
Meenakshi Selvaraj Avatar asked Jan 19 '26 19:01

Meenakshi Selvaraj


1 Answers

If you're using Hilt, make sure your fragment and/or activity is annotated with @AndroidEntryPoint. That solved it for me.

like image 83
Kristy Welsh Avatar answered Jan 22 '26 21:01

Kristy Welsh



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!