No se puede crear una instancia de ViewModel personalizado

Estoy usando la biblioteca dagger2. Cuando estoy tratando de ejecutar mi proyecto se dice no es capaz de crear instancia de la clase de modelo de vista.

Actividad principal donde estoy intentando crear una instancia

((MovieApplication) getApplication()).getAppComponent().inject(this); mViewModel = ViewModelProviders.of(this).get(MoviesDataViewModel.class); 

Mi clase de fábrica

 public class ViewModelFactory implements ViewModelProvider.Factory { private MoviesDataViewModel mViewModel; @Inject public ViewModelFactory(MoviesDataViewModel viewModel) { this.mViewModel = viewModel; } @Override public <T extends ViewModel> T create(Class<T> modelClass) { if (modelClass.isAssignableFrom(MoviesDataViewModel.class)) { return (T) mViewModel; } throw new IllegalArgumentException("Unknown class name"); } 

Mi registro

  Caused by: java.lang.RuntimeException: Cannot create an instance of class com.moviedata.viewmodel.MoviesDataViewModel at android.arch.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:145) at android.arch.lifecycle.ViewModelProviders$DefaultFactory.create(ViewModelProviders.java:143) at android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:128) at android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:96) at com.moviedata.ui.MainActivity.onCreate(MainActivity.java:28) at android.app.Activity.performCreate(Activity.java:6321) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535) at android.app.ActivityThread.access$1100(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5582) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.InstantiationException: java.lang.Class<com.moviedata.viewmodel.MoviesDataViewModel> has no zero argument constructor at java.lang.Class.newInstance(Native Method) 

En lugar de:

 mViewModel = ViewModelProviders.of(this).get(MoviesDataViewModel.class); 

Realizar:

 mViewModel = ViewModelProviders.of(this, viewModelFactory).get(MoviesDataViewModel.class); 
  • Aplicación para Android con RoboGuice 2.0 - Cómo inyectar un singleton con el contexto de la aplicación
  • Los objetos inyectados se convirtieron en nulos después de actualizar a Roboguice 3
  • @Named proveedores con los mismos tipos de retorno terminan dando java.lang.IllegalArgumentException: Duplicar
  • Dagger 2 - ¿Por qué es un ciclo de dependencia?
  • Ventajas de inyectar el autobús de eventos de Otto en lugar de usar singleton estático
  • Dagger 2 Inyecciones estáticas
  • Android and Dependency Injection
  • Conseguir Dagger para inyectar objetos simulados al hacer pruebas funcionales espresso para Android
  • Roboguice: el uso de las inyecciones manuales causa ConfigurationException (no se ha vinculado la implementación)
  • Sitio Web MVC que llama a WCF es mejor o MVC que llama a la operación de base de datos directamente es mejor
  • ¿Cuáles son los beneficios específicos de usar DI en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.