You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级依赖库后点击导航按钮出现SAVED_STATE_REGISTRY_OWNER_KEY异常求助

解决CreationExtras must have a value by SAVED_STATE_REGISTRY_OWNER_KEY异常

问题核心

升级AGP至8.3.2并更新依赖后触发该异常,本质是依赖版本不兼容——尤其是Lifecycle、Hilt Navigation Compose的版本冲突,加上alpha版本依赖的不稳定特性共同导致。

具体修复步骤

  1. 统一Lifecycle依赖版本
    当前混用了稳定版lifecycle-runtime-ktx:2.7.0和alpha版lifecycle-runtime-compose:2.8.0-alpha04,alpha版本易引发兼容性问题,替换为匹配的稳定版:

    // 移除alpha版本依赖
    // implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.0-alpha04")
    // 添加与lifecycle-runtime-ktx版本一致的稳定版
    implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0")
    
  2. 升级Hilt Navigation Compose到稳定版
    你使用的hilt-navigation-compose:1.1.0-alpha01是测试版,与hilt-android:2.51.1版本不匹配,替换为对应稳定版:

    implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
    
  3. 规范导航中ViewModel的获取方式
    确保在NavHost内使用Hilt提供的扩展方法获取ViewModel,避免直接调用默认的viewModel():

    // 单导航图内获取ViewModel
    val viewModel: YourViewModel = hiltViewModel()
    // 跨导航图共享ViewModel
    val viewModel: YourViewModel = hiltNavGraphViewModels(R.id.target_nav_graph_id)
    
  4. 清理缓存并重新构建
    AGP升级后缓存易残留旧依赖信息,执行以下操作彻底清理:

    • 点击Android Studio菜单栏File -> Invalidate Caches...,选择Invalidate and Restart
    • 删除项目根目录的.gradle、build文件夹,以及模块下的build文件夹
    • 执行命令:./gradlew clean build

调整后核心依赖参考(版本对齐)

implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0")
implementation("androidx.activity:activity-compose:1.8.2")
implementation("androidx.navigation:navigation-compose:2.7.7")
implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
implementation("com.google.dagger:hilt-android:2.51.1")
kapt("com.google.dagger:hilt-android-compiler:2.51.1")

内容的提问来源于stack exchange,提问作者gkhn.akbs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:27:03