【发布时间】:2020-08-24 17:31:15
【问题描述】:
我想知道如何使用 Hilt 将应用程序依赖项传递给 ViewModel? 我正在尝试使用 AndroidViewModel,但我做不到。有人能帮我吗?一些简短的样本对我来说意义重大。
这是我的视图模型:
class MainViewModel @ViewModelInject constructor(
private val application: Application,
private val repository: Repository,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {
这是我的刀柄模块
@Module
@InstallIn(ApplicationComponent::class)
object DatabaseModule {
@Singleton
@Provides
fun provideDatabase(
@ApplicationContext context: Context
) = Room.databaseBuilder(
context,
MyDatabase::class.java,
"my_database"
).build()
@Singleton
@Provides
fun provideDao(database: MyDatabase) = database.myDao()
@Singleton
@Provides
fun provideRepository(myDao: MyDao) = Repository(myDao)
@Singleton
@Provides
fun provideApplicationContext() = MyApplication()
}
其他一切都很好,我收到了错误消息:
原因:java.lang.RuntimeException:无法创建实例 com.example.example.viewmodel.MainViewModel 类 引起:java.lang.InstantiationException: java.lang.Class
有 没有零参数的构造函数
【问题讨论】:
-
StefanJo,您有没有使用 hilt 在 AndroidViewModel 中传递应用程序实例的解决方案?
标签: android kotlin dagger-hilt