问题标签 [dagger]

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.

0 投票
0 回答
572 浏览

android - Dagger 1.1.0 +maven+eclipse : 请确保已为此模块运行代码生成

我正在尝试运行 dagger 1.1.0,但仍然出现异常:

在我的 pom.xml 我有:

我还尝试了 optional = true。它与 dagger 版本 1.0.1 可以正常编译,但我无法使其与 1.1.0 一起使用。有任何想法吗?

0 投票
1 回答
829 浏览

eclipse - Eclipse 中的 Dagger 设置

我在为 Dagger 存储库中的 Coffee 示例设置 Eclipse 项目时遇到问题。

下面是错误消息的屏幕截图和我正在使用的 Eclipse 设置。任何建议将不胜感激。

谢谢。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
824 浏览

android - Transfuse 与 Dagger 相比如何?

我正在尝试决定是否使用 Transfuse 或 Dagger 进行 Android 依赖注入。我从未使用过 Transfuse,并且对 Dagger 有基本的了解。非常感谢。

0 投票
1 回答
908 浏览

android - 如何模拟 Dagger 活动对象图?

我在一个 android 应用程序中使用 Dagger 来提供应用程序和活动范围图。我正在使用 Robolectric 进行单元测试。我知道我可以为 Robolectric 提供一个替代 Application 类,该类配置有一个应用程序对象图,该对象图用模拟覆盖真实的。但是我对如何对活动对象图做同样的事情感到困惑,因为活动对象图的标准模式是让活动本身实例化他们需要的活动特定的 Dagger 模块。任何建议将不胜感激。

0 投票
1 回答
8638 浏览

java - 使用没有“injects”指令的 Dagger 模块

我试图让 Dagger 在没有 @Module 注释中的“injects”指令的情况下工作。我的测试项目基于Android Simple Dagger 示例

这是给我带来问题的部分:

(编辑):在我的代码中是CTXModules.java

我想删除的部分是“injects = HomeActivity.class”。我知道我可以在构造函数中使用 @Inject 注释标记我自己的模块以删除那里的那部分,但不知何故它不适用于添加到图中的模块。有了那条线,一切正常。

我需要这个的原因是因为匕首将在一个基础库项目中实现,这将成为一些共享公共代码库的项目的基础,因此目前或编写这部分代码我不知道是什么类将注入模块。

我想要做的甚至可能吗?

我认为这是可能的,因为Android Module 类不使用该指令。

希望它足够清楚。提前致谢!

(编辑)

我应该提到它。在我的模块中,我删除了“injects = HomeActivity.class”并添加了“library = true”,就像在Android Module 类中一样。然后发生的事情是我收到了这个错误(我之前没有添加它是我的错误):

另外,我已经将我的测试项目上传到了 github

(最终编辑)根据 Jake 的回答:“将模块声明为库并不能减轻 Dagger 了解注入点的需求。” 因此,我最初的问题的答案是这是不可能的。

0 投票
1 回答
663 浏览

android - 为什么不将 OrmLiteSqliteOpenHelper 绑定到 Application 而不是 Activity?

在 ORMLite 文档中,建议为每个活动创建OrmLiteSqliteOpenHelper。由于获取助手只需要一个Context对象,为什么不为整个Application对象创建一次数据库助手呢?这将打开使用 Dagger(或其他注入框架)将数据库助手注入到需要它的类中的可能性。

有什么理由不创建一个单一的应用程序范围的数据库助手?是否最好让每个活动都有自己的数据库助手?我可以想象这会使助手的缓存大小保持较小,因为缓存仅包含与其活动相关的对象。

0 投票
1 回答
407 浏览

dependency-injection - Dagger 中的依赖项优先级

当你使用 @Inject-annotated 构造函数来通知 Dagger 如何提供依赖时,你以后可以在模块中覆盖它吗?案例:我的生产代码使用带注释构造函数的组件,我想在测试期间用测试实现覆盖它。我的 override = true 模块会在测试期间成功覆盖生产实现吗?

或者更一般的问题,什么优先,模块或带注释的类?</p>

0 投票
1 回答
1715 浏览

dependency-injection - 在 Dagger 中使用不带 @Provides 的 @Singleton

一个注入类的模块的小例子Foo

(假设BarBaz由不同的模块提供)

我现在想Foo成为一个单身人士。

我可以添加一个方法并用...@Provides注释它@Singleton

...但是必须自己编写构造函数调用有点违背了使用注入框架的目的。有没有更短的方法来完成这个?

0 投票
1 回答
3764 浏览

android - Android studio gradle 重复文件匕首编译器

使用匕首编译器将 android studio 更新为 0.4.0 并将 gradle 插件更新为 0.7.1 并将 gradle 版本更新为 1.9 后出现奇怪的问题

构建.gradle

在构建时出现此错误

在 APK META-INF/services/javax.annotation.processing.Processor 文件 1 中复制的重复文件:C:\Users\Mantas.gradle\caches\modules-2\files-2.1\com.squareup.dagger\dagger-compiler\ 1.2.0\22633bb84433e03d345a83e7b0c08c66768be30\dagger-compiler-1.2.0.jar 文件 2:C:\Users\Mantas.gradle\caches\modules-2\files-2.1\com.squareup.dagger\dagger-compiler\1.2.0 \22633bb84433e03d345a83e7b0c08c66768be30\dagger-compiler-1.2.0.jar

如果匕首编译器行被注释一切正常

我怎么解决这个问题?谢谢

已编辑 修复问题,请查看 https://plus.google.com/+HugoVisser/posts/7Wr3FcdNVxR

0 投票
1 回答
4405 浏览

android - 如何让 Dagger 和 Butterknife 与 Gradle 一起工作?

我的项目与Butterknife配合得很好,可以进行视图注入。但是我随后需要添加Dagger以注入依赖项。

我添加了带有适当 Dagger 要求的Annotation Processor Tool Gradle 插件(为简洁起见,仅显示修改的部分);

现在,当我构建和运行应用程序时,标有@InjectView注释的属性没有被注入 Butterknife 发出的以下调试消息;