问题标签 [toothpick-di]
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.
kotlin - Kotlin kapt 参数一个键的多个值
我正在尝试将没有反射的牙签库集成到我的多模块项目中。我按照本指南将我的所有模块与 DI 连接起来。例如我有三个模块::app, :feature1, :feature2
. :app
模块依赖于:feature1
和:feature2
。我需要从两个功能模块中注入类。所以在我:app
的build.gradle
文件中我需要写这样的东西(使用annotationProccessor - 而不是kapt):
如您所见,toothpick_registry_children_package_names
参数有两个值(两个值的列表)。但是如何使用 kapt 插件为一个键设置多个值?我试过这样做:
但生成的代码如下所示:
如您所见,参数包括方括号(第一个参数以“[”开头,第二个以“]”结尾)。我究竟做错了什么?我试图删除方括号,但两个模块名称只是像这样连接:
是 kapt 插件中的错误还是我做错了什么?
android - 匕首代码有效,如何使牙签代码以相同的方式工作?
我开始使用牙签,我需要从匕首代码迁移到牙签。
好吧,我在 Dagger 的项目中有下一个字符串。
和
和
它工作正常(除了我仍然无法理解什么或谁将存储库/serviceImpelmentation 放入提供方法)。好吧,我正在尝试在 Toothpick 中做同样的事情,然后做下一个:
然后
最后
我有上面的所有限定符。
我将我的模块安装在 Fragment 类(Fragment Scope)中
但最后我得到 NullPointerException 我的 ProjectsRepository 为空,我不能使用它的实例方法。
我在哪里犯错?请帮忙“翻译”。
java - 当构造函数在牙签中有参数时通过工厂注入
我有一个要注入的类,它有一个接收一个参数(上下文)的构造函数。
我通常会将它绑定到一个实例,但是这个类具有 JNI 依赖项,我无法使用 Robolectric 实例化它,这阻止了我在配置模块时测试应用程序的一部分。
我已将其设置为与类的绑定,并将目标类注释为单例,并将构造函数注释为注入,但它没有为它构造工厂。
我很乐意提供自己的工厂,但我在文档中找不到任何相关信息。
这是我进行绑定时的部分:
这就是我设置课程的方式:
为了清楚起见,如果我在进行绑定时使用 toInstance ,它确实有效。
如何让注入的构造函数将其绑定到类?
java - 牙签不会在注入的实例中注入依赖项
我为 Toothpick 和 Authenticator 创建了 Activity、ViewModel、Modules。
在 Toothpick 的文档中写道:“如果 Toothpick 创建一个实例,它将始终注入其依赖项。” , 但在 Toothpick.inject(this, appScope); 之后
mGetSmsViewModel.app == null 和 mGetSmsViewModel.authenticator == null 。在 Toothpick.inject(mGetSmsViewModel, appScope); 之后 app 和 authenticationator 字段被注入。
应该是这样吗?
android - 我们可以像在 Dagger 中一样使用牙签在 Presenter 中注入“视图”吗?
在 Dagger 中,您可以在Presenter中注入您的activity
as视图,请按照以下示例进行操作,
飞溅模块
查看模块
活动模块
我试图在 ToothPick 中找到如何做到这一点,但找不到任何官方文档或博客文章!
谢谢
android - 在 3.0.2 版本中找不到 ToothPickRule 类
我将toothpick
sdk 版本更新为3.0.2
from 1.1.3
。更新后,无法ToothPickRule
在toothpick
. 这导致测试用例失败。
android - 当存在多个片段实例时将视图模型注入片段
我正在为 Android 应用程序使用 Toothpick 依赖注入框架,并且当后台堆栈上存在相同片段的多个实例时,我在将 android 视图模型注入片段时遇到问题。我希望每个片段实例都有自己的视图模型实例,但问题是只有一个视图模型被创建并在所有片段实例之间共享。
我创建了一个示例项目来演示该问题。单个活动包含具有 android 视图模型的单个片段。此活动的多个实例被创建并放置在活动后台堆栈上。
这是我的活动:
它包含以下布局:
主要片段:
主视图模型:
我的直播数据:
输出:
如您所见,新片段被创建,但共享相同的视图模型和实时数据。我想为每个片段创建一个新的 viewmodel/livedata,这些 viewmodel 应该存在于 viewmodel 范围内。我怎样才能做到这一点?
android - 使用 Toothpick DI 注入仿制药
我一直在玩 ToothPick DI,我遇到了一种情况,我需要向演示者注入几个泛型,但我不知道该怎么做,或者是否有可能。这是我正在尝试做的一个例子。
这是演示者的示例:
让我们假设interactor1 和interactor2 通过注解或模块正确注入,但是List 和Page 仍然缺少绑定。
根据我的经验,我无法将Page或List与 Toothpick 绑定,因为它无法注入泛型类型,我错了吗?
谢谢!
android - 在使用 ToothPick 的应用程序中使用 Leak Canary 发现模糊泄漏
我有一个使用单个 Activity 和 Toothpick / Ktp 实现的应用程序。
我为每个片段创建一个范围,当片段被销毁时我关闭它。此行为在 BaseFragment 类中完成。
它确实使用 ViewBinding。
调用 onDestroyedView 时,适配器及其侦听器为空。
有人有其他想法这种泄漏可能来自哪里?或详细搜索?
android - 如何使用 Toothpick 对 android ViewModels 使用构造函数注入
我想为我的视图模型使用构造函数注入
自定义视图模型工厂似乎可行,subScope.installViewModelBinding<VM>(fragment, factory)
但我还没有弄清楚如何以方便的方式做到这一点,有什么建议吗?