小编rij*_*zid的帖子

在单例私有构造函数类上使用 hilt 进行依赖注入

我是新手。所以我想在我使用 MVVM 架构的项目上尝试使用 hilt 进行依赖注入。结构如下所示:JsonHelper -> RemoteDataSource -> Repository -> ViewModel。

当我尝试在 RemoteDataSource 和 Repository 上注入 DI 时,就会出现问题,因为这些类是单例类并且具有私有构造函数。错误代码如下所示

..location\RemoteDataSource.java:40: error: Dagger does not support injection into Kotlin objects
public static final class Companion {

..location\Repository.java:30: error: Dagger does not support injection into Kotlin objects
public static final class Companion {
Run Code Online (Sandbox Code Playgroud)

这些是我的 RemoteDataSource 和存储库代码,我尝试将其注入到构造函数中,但它说 Dagger 无法注入私有构造函数,所以我尝试将其注入到函数中,但仍然不起作用

远程数据源.kt

@Singleton
class RemoteDataSource private constructor(private val jsonHelper: JsonHelper) {

companion object {

    @Volatile
    private var instance: RemoteDataSource? = null

    @Inject
    fun getInstance(jsonHelper: JsonHelper): RemoteDataSource …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection kotlin dagger-hilt

7
推荐指数
1
解决办法
2万
查看次数