【发布时间】:2021-02-26 17:56:22
【问题描述】:
在我的项目中,当我使用刀柄时,compose viewModel() 方法给出错误“没有零参数构造函数”。
@Composable
fun HomeScreen(homeViewModel: HomeViewModel = viewModel()) {
...
}
@HiltViewModel
class HomeViewModel @Inject constructor(private val repository: Repository) :
ViewModel() {
...
}
@Module
@InstallIn(ViewModelComponent::class)
abstract class DataModule {
@Binds
abstract fun bindRepository(
fakePuppyRepository: RepositoryImpl
): Repository
}
这些是我的依赖项
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.ui:ui-tooling:$compose_version"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
implementation 'androidx.activity:activity-compose:1.3.0-alpha03'
implementation "androidx.navigation:navigation-compose:1.0.0-alpha08"
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0'
implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta01'
implementation "com.google.dagger:hilt-android:$hilt_version"
implementation 'androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03'
kapt "com.google.dagger:hilt-compiler:$hilt_version"
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
【问题讨论】:
-
我也发现了这个。但是在活动中使用
by viewModels()效果很好。猜测这是其中一个 alpha 库中的错误。 -
您是否在 NavHost 中使用此组合?我也在运行这个问题,并且 Hilt 集成页面已经过时,推荐 HiltViewModelFactory
标签: android android-jetpack-compose dagger-hilt