我的应用程序中有一个 NavHost 定义如下:
@Composable
fun MainScreen() {
val navController = rememberNavController()
Scaffold(
modifier = Modifier.fillMaxSize(),
bottomBar = {
BottomBar(navController = navController)
}
) {
NavHost(
modifier = Modifier.padding(it),
navController = navController,
startDestination = "main",
) {
navigation("B", route = "main") {
composable("A") {
ScreenA(navigate = { navController.navigate(route = "new") })
}
composable("B") { ScreenB() }
}
navigation("C", route = "new") {
composable("C") {
ScreenC(onBack = {
navController.popBackStack()
})
}
}
}
}
}
在 ScreenC 内部我有一个
val viewModel = hiltViewModel<ScreenCViewModel>()
(如 ScreenA 和 ScreenB 中一样)。
ScreenCViewModel
的 init 会导致异常,因为它表示没有找到该 viewModel 的构造函数。
所有 viewModel 都标有 @HiltViewModel
注释,所有依赖项均使用 @Provides
或 @Binds
排序。
我确信我缺少图表的一点配置。有什么想法吗?
没有完整的图片,很难像@Leviathan 所说的那样猜测。无论如何,我能想到的只有两个
您忘记了模块内的依赖项
在 App /Fragment/Screen 中声明视图模型时,您忘记添加
@AndroidEntryPoint
和/或 viewModels()` 委托...
抱歉,我脑子里什么也没想到。