IllegalStateException: VIEW_MODEL_KEY всегда должен предоставляться ViewModelProvider.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 IllegalStateException: VIEW_MODEL_KEY всегда должен предоставляться ViewModelProvider.

Сообщение Anonymous »

Я получаю сообщение об ошибке ниже. Кто-нибудь знает, как это исправить?
Ниже приведен лог-код и то, что я сделал до того, как произошла ошибка.
  • Я запускаю обновление Gradle в своем проекте (теперь это gradle 8.4.1)
  • Обновлено несколько версий библиотек (включая ViewModel lib — теперь 2.8.0)
  • Обновлены библиотеки с kapt на ksp
Я использую Koin для внедрения.
class LoginRegisterActivity : AppCompatActivity() {

private lateinit var binding: FragmentLoginRegisterBinding
private val viewModel: LoginRegisterViewModel by viewModel {
parametersOf(
AuthClient(),
FireStoreClient()
)
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = FragmentLoginRegisterBinding.inflate(layoutInflater)
setContentView(binding.root)

setLoginFunction()
setRegisterUserFunction()
setForgotPasswordFunction()
}

override fun onStart() {
super.onStart()
if (AISLAuthClient.auth.currentUser != null) {
reload()
}
}
}


Caused by: java.lang.IllegalStateException: VIEW_MODEL_KEY must always be provided by ViewModelProvider
at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.kt:83)
at androidx.lifecycle.ViewModelProvider$Factory.create(ViewModelProvider.android.kt:158)
at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release(ViewModelProviderImpl.kt:69)
at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release$default(ViewModelProviderImpl.kt:47)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.android.kt:91)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.android.kt:109)
at org.koin.androidx.viewmodel.ViewModelResolverKt.resolveInstance(ViewModelResolver.kt:15)
at org.koin.androidx.viewmodel.scope.ScopeExtKt.getViewModel(ScopeExt.kt:67)
at org.koin.androidx.viewmodel.scope.ScopeExtKt.getViewModel(ScopeExt.kt:53)
at org.koin.androidx.viewmodel.scope.ScopeExtKt.getViewModel$default(ScopeExt.kt:45)
at org.koin.androidx.viewmodel.ext.android.ComponentCallbackExtKt.getViewModel(ComponentCallbackExt.kt:63)
at xxxx.xxxx.xxxx.xxxx.views.login_register.LoginRegisterActivity$special$$inlined$viewModel$default$2.invoke(ComponentCallbackExt.kt:65)
at xxxx.xxxx.xxxx.xxxx.views.login_register.LoginRegisterActivity$special$$inlined$viewModel$default$2.invoke(ComponentCallbackExt.kt:42)
at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
at xxxx.xxxx.xxxx.xxxx.views.login_register.LoginRegisterActivity.getViewModel(LoginRegisterActivity.kt:23)
at xxxx.xxxx.xxxx.xxxx.views.login_register.LoginRegisterActivity.setLoginFunction(LoginRegisterActivity.kt:48)
at xxxx.xxxx.xxxx.xxxx.views.login_register.LoginRegisterActivity.onCreate(LoginRegisterActivity.kt:35)
at android.app.Activity.performCreate(Activity.java:8975)
at android.app.Activity.performCreate(Activity.java:8944)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4146)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322) 
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loopOnce(Looper.java:230) 
at android.os.Looper.loop(Looper.java:319) 
at android.app.ActivityThread.main(ActivityThread.java:8919) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) 


Подробнее здесь: https://stackoverflow.com/questions/785 ... odelprovid
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»