问题标签 [koin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 由于 mockito,Android 仪器测试失败
嗨,我收到以下错误
我已经手动打开了这些课程..
我使用的依赖项
dependency-injection - 面临将 sharedPreferences 和 sharedPrefrencesEditor 添加到 Koin 模块的问题
我最近了解了 Koin。我试图将我当前的项目从 Dagger 迁移到 Koin。这样做时,我遇到了在活动中注入sharedPreferences 和 sharedPreferences 编辑器的问题。
以下是我在Dagger中用于注入 sharedPreferences 和 sharedPreferences 编辑器的代码 ->
我试图像这样将上述代码转换为Koin ->
我也尝试以这种方式实现它->
现在我像这样在我的活动中注入依赖项->
但是一旦我启动我的应用程序并尝试使用它们,我就无法读取或写入任何偏好设置。
我对代码有什么问题感到有些困惑。请帮我解决这个问题。
kotlin - 如何使用 Koin 依赖注入 (Kotlin) 检索与给定类型匹配的所有实例
如何使用 Koin DI 实现以下目标:
在我想要注入所有验证器的类中,我使用以下内容:
期望IValidator
自动注入所有不同的接口实现。
我知道这实际上在 Kodein 中得到支持,您只需执行以下操作:
val validators: List<IValidator> by kodein.allInstances()
很想知道这在 Koin 中是否可行。
谢谢!
android - 多模块清洁架构项目:使 Koin 设置反映正确的 gradle 依赖关系
我正在开发一个由以下模块组成的多模块项目:域、数据库、服务和应用程序。
依赖关系如下:
- 域没有
- 数据库依赖于域
- 服务依赖于数据库和域
- app 应该只依赖域和服务,但现在还依赖于数据库。
应用程序、服务和数据库每个都有一个 modules.kt,其中包含模块提供的所有内容(Koin)。数据库提供存储库的实现,服务提供用例,应用提供视图模型,...
app 必须依赖数据库模块的原因是,当我在我的 app 模块中启动 Koin 时,我可以引用数据库模块。
我不希望我的应用程序模块仅仅为此而依赖我的数据库模块。然而,我仍然希望每一层都有自己的模块文件。有没有办法声明我的 Koin 服务模块文件依赖于该数据库模块文件?这样我的 Koin 设置反映了我的 gradle 设置。
android - 注入超类型dagger2
是否可以在 Dagger 2 中注入超类型?
如果我有这样的财产
以下提供工作吗?
其实我应该改写这个问题。它不起作用,我收到一个错误,需要注入确切的钱包
我们有什么解决方法吗?. koin 是否提供一些这样的功能?
android - Gradle 依赖不与依赖模块共享
语境
我的项目中有两个模块:
- Java/Kotlin 模块
common
- Android/Kotlin 模块
app
common
依赖于Koin,这是一个用于依赖注入的 Kotlin 库:
使用示例:
app
不依赖 Koin 库,因为我不需要在 Android 代码中注入任何东西,所有注入都在公共代码中(演示者、拦截器等)。
但app
取决于common
:
使用示例:
问题
我可以编译common
,我可以在 中运行单元测试common
,但是当我尝试编译时app
出现此错误:
以下类的超类型无法解析。请确保您在类路径中有所需的依赖项:class xxx.common.presenter.MyPresenter,未解析的超类型:org.koin.standalone.KoinComponent
当我跑./gradlew :app:dependencies
依赖项在runtime
配置中,但在配置中缺失compile
。
到目前为止我已经尝试过:
显然我不想在其中声明 Koin 依赖项,app
所以我尝试了几件事:
更改 Koin 依赖项api
:
不工作- 我得到与implementation
.
更改项目依赖配置:
不工作- 我不确定这个,但我希望它会获得配置中的依赖common
项compile
。
更改 Koin 依赖项compile
:
在职的!依赖项出现在 中debugCompileClasspath
,我可以运行app
.
问题
现在我很困惑:
- 由于
app
不直接使用 Koin,我虽然不需要依赖。为什么会这样?是因为是静态类型MyPresenter
吗KoinComponent
? - 我认为
api
与 deprecated 相同compile
。似乎没有。 - 除了使用 deprecated 之外,还有其他方法
compile
吗?
android - 如何一起使用 Koin sharedViewModel() 和 NavigationComponent navArgs()
我正在尝试注入一个sharedViewModel
usingarguments
作为key
.
这是我得到的错误
我猜在注入arguments
时是空的sharedViewModel
,但我不确定。
我如何trackId
在从?key
parameter
arguments
EDIT1:我尝试使用直接arguments
调用并且它有效
所以我猜这个navArgs()
电话有问题。
EDIT2:正如Commonware所建议的,EDIT1
它并没有真正起作用,它只是将 a 传递null
key
给该方法。我对有办法使用这种方法失去了希望。
android - 带有私有参数的 Koin 单例注入构造函数
你好我刚学 Koin,这个 Dagger2 类在 Koin 2.0 中如何提供?
我试过这个:
但是AppExecutors.MainThreadExecutor()
是私人的。公开它是唯一的解决方案吗?
android - StandAloneContext Koin 实例为空
当我将 Koin 添加到项目中时,我不断遇到以下错误。 StandAloneContext Koin instance is null
implementation 'org.koin:koin-android:1.0.2'
模块.kt
应用程序.kt
junit - 如何使用 Koin 注入 @BeforeClass 静态方法?
我有一个集成测试,需要在运行任何后续测试之前调用 REST 服务以获取访问令牌一次。在将 Koin 添加到我的项目之前,我在一个带有@BeforeClass
如下注释的静态方法中完成了这项工作:
AuthRepository 和 PersonRepository 有额外的依赖关系,到目前为止,这些依赖关系是在它们的构造函数中实例化的。现在,我想使用 Koin 通过注入存储库来解决这些依赖关系:
当我尝试inject
在伴生对象中使用时,编译器会报错:
@BeforeClass
还有另一种方法可以使用 Koin 以这样的静态方法注入我的类吗?