【问题标题】:Make domain module pure kotlin使域模块成为纯 kotlin
【发布时间】:2022-10-21 17:30:47
【问题描述】:

我开发了一个模块化的 android 应用程序,但是我在制作域模块纯 kotlin 时遇到了问题。我的意思是,我希望我的域模块是一个 kotlin(或 java)库,而不是一个 android 库。 一切都很好,直到我使用 hilt 将我的存储库接口注入到我的用例中。 在这里我遇到了一些错误。因为 hilt 是一个 android 库,我不应该使用它。但我需要它。 如你看到的 :

import com.example.domain_article.repository.ArticleRepository
import javax.inject.Inject

class GetArticleListLocalUseCase @Inject constructor(
    private val articleRepository: ArticleRepository) {
    operator fun invoke() = articleRepository.getArticleListLocal()
}

这里我们有属于刀柄(匕首)的@Inject,如果我从域模块的gradle中删除刀柄依赖,我会得到一个错误。

我应该怎么做才能使我的域成为纯 kotlin 和 hilt?

【问题讨论】:

  • 至于依赖注入,您可以使用 Kotlin DI 库科因而不是匕首。
  • @Inject 不属于刀柄(匕首)。它属于javax inject 库,您可以在没有匕首依赖的情况下使用它

标签: android kotlin mvvm dns dagger-hilt


【解决方案1】:

我以前遇到过这种情况,

您可以导入以下内容:

import javax.inject.Inject

这将提供@inject,而无需将 dagger-hilt 添加到您的域模块。

@注入正如@IR42 在 cmets 中所说,属于 javax injection

为了使用这个库,你可以

implementation 'javax.inject:javax.inject:1'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2017-12-15
    • 1970-01-01
    • 2020-02-14
    相关资源
    最近更新 更多