问题标签 [kodein]
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.
android - 如何使用 Kodein 为工厂类实例化许多参数
我正在Kodein
为我的kotlin
项目注入依赖项。所以我有一个 ViewModel 工厂,如下所示
然后,在我的 Application 类中,我创建了:
如您所见,我的ReadViewModelFactory
. 但是当我运行我的应用程序崩溃发生在ReadActivity
. 什么控制台日志说
java.lang.RuntimeException: 无法启动活动 ComponentInfo{id.my.app/id.my.app.ui.read.ReadActivity}: org.kodein.di.Kodein$NotFoundException: 没有为 bind() 找到绑定? ().? { ? 在这个 Kodein 容器中注册:
我的ReadActivity
样子如下:
全栈跟踪
08-21 11:23:54.807 27186-27186/id.my.app E/AndroidRuntime: 致命异常: 主进程: id.my.app, PID: 27186 java.lang.RuntimeException: 无法启动活动 ComponentInfo{id. my.app/id.grid.app.ui.read.ReadActivity}:org.kodein.di.Kodein$NotFoundException:没有找到绑定()与?()的绑定。?{ ? 在这个 Kodein 容器中注册:
android - 尽管有以下示例,但未使用自定义 AndroidJUnitRunner
我正在尝试将自定义 AndroidJUnitRunner 实现与 ActivityScenarios 一起使用。目标是为单元测试提供一个 KodeinAware 的应用程序实例。
但是,尽管遵循了在线找到的示例,但似乎没有使用自定义运行器。我正在通过在以下覆盖中打印一条语句进行测试:
我还更新了 build.gradle 以使用自定义运行器:
为了更加确定我没有丢失日志中的打印语句,我的 KodeinAware Activity 中还有以下初始化代码:
结果,我不断收到以下异常,表明未使用自定义测试运行器:
java.lang.ClassCastException:android.app.Application 无法转换为 org.kodein.di.KodeinAware
我想强调的是,自定义运行器仅适用于常规 Android 单元测试,而不适用于仪器测试。
由于上述测试是 Android 库的一部分,我也没有使用生产应用程序类,所以我不希望模块中有应用程序。
有谁知道我可能做错了什么或者我是否错过了一些步骤?
android-studio - 我可以注入活动的视图模型并在对话框片段中使用它吗
我正在尝试注入活动的视图模型,我想在对话框片段中使用它,如何用 Kodein 注入它?并使用我之前在其他活动或片段中注入的视图模型。
我已经尝试过中等教程这里是教程
https://proandroiddev.com/android-viewmodel-dependency-injection-with-kodein-249f80f083c9
我正在尝试从活动的视图模型访问注入结果,但是当我尝试从对话框片段访问 viewModel 内的某些对象时,该值为 null 与活动的 viewModel 不同
我期待当我访问对话框片段的 viewModel 中的某个对象时,我得到与活动的 viewModel 相同的值
我想要与活动的 viewModel 对象相同的结果,但我得到了空结果
android - WorkManager 和 Kodein
我在使用 Kodein 实现 android WorkManager 时遇到了麻烦。我想使用 WorkManager 来跟踪后台位置更新,并定期向我的服务器发送发布请求以及用户的新位置。
我已经看到了多种使用 Dagger2 实现此功能的方法,但我想知道 kodein 是否有类似的解决方案?
这是我得到的错误:
2019-09-23 12:44:06.690 17462-17500/com.rainparrot.app E/WM-WorkerFactory: Could not instantiate com.rainparrot.app.utility.TrackLocationWorker
java.lang.NoSuchMethodException: <init> [class android.content.Context, class androidx.work.WorkerParameters]
at java.lang.Class.getConstructor0(Class.java:2204)
at java.lang.Class.getDeclaredConstructor(Class.java:2050)
at androidx.work.WorkerFactory.createWorkerWithDefaultFallback(WorkerFactory.java:96)
at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:228)
at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:127)
at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
2019-09-23 12:44:06.690 17462-17500/com.rainparrot.app E/WM-WorkerWrapper: Could not create Worker com.rainparrot.app.utility.TrackLocationWorker
2019-09-23 12:44:06.830 17462-17462/com.rainparrot.app D/MainActivity$onCreate: Work Manager Status: FAILED
这是我的主应用程序文件,其中包含我所有的 kodein 绑定:
MainActivity 实例化:
预测存储库设置:
kotlin - 必需:KodeinBinding
在探索 Kodein 时,我遵循https://proandroiddev.com/dependency-injection-with-kotlin-kodein-koin-3d783745e48d中的示例
我得到了错误
怎么了?
仅供参考,我使用 kodeIn 版本6.4.0
补充一下,我已经尝试过来自https://kodein.org/di/的示例
同样的事情也会发生。我做错什么了吗?或者文档已经过时了?
kotlin - 如何为 Kodein Injected 实例传递参数?
在 Kodein 中,当我有以下绑定时
我可以在下面使用我的 appDependent
但是,如果我想提供title
如下
我怎么能创造appDependent
?
我尝试了以下方法但没有工作。
kotlin - 如何为 Kodein Injected 实例传递多个参数?
在 Kodein 中,我有以下绑定
我可以使用它创建它
但是,如果我的绑定有多个参数,例如
我怎么能实例化它?我看到我们只有一个arg
函数instance()
。
android - 如何在 Android 中将 Kodein 与 Conductor 一起使用?
我想在我的应用程序中同时使用 Conductor 和 Kodein。问题是应用程序上下文和活动在控制器设置上都是空的,我无法访问 Kodein 实例。
android - 需要 HTTP 方法注解 Retrofit2
我对存储库模式的使用有一个抽象,我无法进行改造调用。
我将从改造服务转到我的用例。
我有 AuthenticationRetrofitService
然后我有AuthenticationRetrofitApi
哪些实现AuthenticationApi
那么这是AuthenticationApi
然后我有AuthenticationRepository
和AuthenticationRepositoryImpl
从我的用例中,我称AuthenticationRepository
我的问题是,我不知道如何链接它们,因为如果我运行应用程序,我会收到此错误。
java.lang.IllegalArgumentException:需要 HTTP 方法注释(例如,@GET、@POST 等)。
然后我正在使用Kodein
依赖注入,但我不知道要做什么bind
或provide
可能是什么错误?因为 :
AuthenticationRetrofitApi
未使用
AuthenticationRepositoryImpl
未使用
我错过了什么?
编辑
这就是我Kodein
用于改造模块的方式