Reputation: 1024
I get the following error when trying to use ViewModelProvider:
BeaconViewModel beaconViewModel = new ViewModelProvider(LoginActivity.this).get(BeaconViewModel.class);
'ViewModelProvider(androidx.lifecycle.viewmodel.ViewModelProviderImpl)' has private access in 'androidx.lifecycle.ViewModelProvider'
def room_version = "2.6.1"
def lifecycle_version = '2.7.0'
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-rxjava2:$room_version"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"
implementation 'androidx.lifecycle:lifecycle-common-java8:2.8.2'
implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version"
Upvotes: 1
Views: 664
Reputation: 63
Without downgrading (keep lifecycle_version at 2.8.3 which is currently latest), you can use the following:
implementation "androidx.lifecycle:lifecycle-viewmodel-android:$lifecycle_version"
Keep in mind that you will need to remove some of the other imports for lifecycle as that might give you a gradle error when compiling due to duplicate classes. If you can't remove due to something else being needed, you may follow Problem duplicate class androidx.lifecycle.viewmodel found in modules if you reach that point and can't fix it.
Upvotes: 0
Reputation: 455
Using this version of dependencies removed the error and it worked for me. Instead of version 2.8.3, use version 2.7.0.
def lifecycle_version = "2.7.0"
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
Upvotes: 5