'Caused by java.lang.IllegalArgumentException: SavedStateProvider with the given key is already registered
Below is my code, I don't know why there is such a problem, I have pasted the code that may be relevant below.
I don't know that registerSavedStateProvider will be affected by those places.
CrashLOG
Caused by java.lang.IllegalArgumentException: SavedStateProvider with the given key is already registered
at androidx.savedstate.SavedStateRegistry.registerSavedStateProvider(SavedStateRegistry.java:111)
at androidx.lifecycle.SavedStateHandleController.attachToLifecycle(SavedStateHandleController.java:50)
at androidx.lifecycle.SavedStateHandleController.create(SavedStateHandleController.java:70)
at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:67)
at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:84)
at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.create(HiltViewModelFactory.java:109)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)
at com.xx.getVm
Activity
override fun onCreate(savedInstanceState: Bundle?) {
if (savedInstanceState == null) {
val target = XXFragment()
supportFragmentManager
.beginTransaction()
.add(R.id.container, target)
.commitAllowingStateLoss()
}
}
override fun onSaveInstanceState(outState: Bundle) {
outState.putParcelable(xx,xx)
super.onSaveInstanceState(outState)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
xx = xx
}
Fragment
private val vm: XXViewModel by viewModels()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
