java.lang.RuntimeException:无法创建类 com.dg.test.analytics.AnalyticsViewModel 的实例

问题描述 投票:0回答:1

创建了 ViewModel,正确进行了柄注入的活动。

但是当我在可组合项中使用视图模型时,它在运行时给出此错误

@Composable
internal fun GalleryPage(
   analyticsViewModel: AnalyticsViewModel = hiltViewModel(),

无法创建 com.glance.wallpaper.analytics.AnalyticsViewModel 类的实例 在 androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.kt:204) 在 androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.kt:324) 在 androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.kt:306) 在 androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.kt:280) 在 androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.kt:128) 在 dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.create(HiltViewModelFactory.java:116) 在 androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:187) 在 androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:153) 在 androidx.lifecycle.viewmodel.compose.ViewModelKt.get(ViewModel.kt:215) 在 androidx.lifecycle.viewmodel.compose.ViewModelKt.get$default(ViewModel.kt:195) 在 androidx.lifecycle.viewmodel.compose.ViewModelKt.viewModel(ViewModel.kt:120) 在 com.dg.test.ui.compose.settings.GalleryPageKt.GalleryPage(GalleryPage.kt:299)

尝试调试 viewModel 注释,检查调用位置、依赖关系等。

android debugging mvvm android-jetpack-compose viewmodel
1个回答
0
投票

调试后,找到原因了。 由于分析是一个单独的模块,因此我只添加了 hilt 的基本依赖项

com.google.dagger:hilt-android

这样,其他模块中的所有进程、依赖项都将起作用。

但是分析模块缺少 compose 和编译器的依赖项

com.google.dagger:hilt-android-compiler
androidx.hilt:hilt-navigation-compose
androidx.hilt:hilt-work:$versions.hiltWorker

添加它们,它的编译和工作就像一个魅力

© www.soinside.com 2019 - 2024. All rights reserved.