Como usar injeção de dependência para injetar construtor em um ViewModel

Eu estou tentando implementar o exemplo emhttps://developer.android.com/jetpack/docs/guide. Isso explica como o aplicativo Android tan deve ser estruturado.

Quando uso o mesmo código, recebo o seguinte erro.

java.lang.Class<com.example.UserProfileViewModel> has no zero argument constructor

Eu poderia descobrir que esse erro tem algo a ver com

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

Quando escrevo um construtor de entrada zero padrão para o ViewModel, recebo o seguinte erro.

Attempt to invoke virtual method 'void android.arch.lifecycle.LiveData.observe(android.arch.lifecycle.LifecycleOwner, android.arch.lifecycle.Observer)' on a null object reference

Não consigo descobrir o motivo desse erro e como resolvê-lo.