我尝试在使用Jetpack Compose构建的应用程序中实现导航,但当我尝试从一个屏幕导航到另一个屏幕时,我得到:
异常错误:创建附加必须具有SAVED_STATE_REGISTRY_OWNER_KEY
的值
我正在使用:
implementation "androidx.hilt:hilt-navigation-compose:1.0.0"
代码如下:
if(viewModel.isAuthenticated) {
navController.navigate(Screen.Profile.route)
}
5条答案
按热度按时间kgsdhlau1#
@Dragan.T的答案正确。
正在添加
实现“androidx.导航:导航-合成:2.5.1”
解决了我的问题。至于为什么我们需要添加,我不太确定,但它是Android的,所以任何事情都可能发生在这里。
6ovsh4lw2#
如果使用“合成片段”,则可能没有定义了
viewModels()
的片段依赖关系。正在添加:
implementation "androidx.fragment:fragment-ktx:1.5.2"
我的build.grade脚本为我修复了它(以前这是一个可传递的依赖项)。
vuv7lop33#
将
implementation "androidx.navigation:navigation-compose:2.5.1"
插入您的gradle文件。如果您已经有了它,请确保它已更新为最新的(2.5.1)版本。r1zhe5dt4#
您可以继续使用此库:
只有您确定ViewModel已在Activity中的根Composable中初始化。例如:
您的可组合
332nm8kg5#
在我的例子中,我必须升级两个依赖项:Hilt和androidx.navigation。奇怪的是,升级后,错误消失了,但如果我再次降级到以前的版本,错误不会再次出现。以下是我更改的依赖项: