android - 如何在 IntelliJ 中配置 Dagger

标签 android intellij-idea dagger

我下载了 dagger,因为它似乎是 Android 依赖注入(inject)的好选择。但是我在集成编译器时遇到了一些麻烦。是否有任何关于正确设置的提示?我遵循了关于 android 注释的说明,因为这个项目似乎很相似。但它不适用于 Dagger 。

我做了什么: 我将 dagger-1.1.0.jar 和 javax.inject-1.jar 添加到我项目的 lib 文件夹中,并像我一样添加了一个名为“compile-libs”的新文件夹,其中包含“dagger-compiler-1.1.0.jar”不希望此文件打包在 *.apk 中。

project file structure

我在模块的依赖项中添加了 dagger 和 javax.inject。

现在是棘手的部分:我将编译器添加到注释编译器设置中:

settings

当我运行程序时,出现以下错误: 无法加载类 de.myproject.app.modules.AndroidModule 的模块适配器。请确保已为此模块运行代码生成。

所以在我看来代码生成并没有发生。另外,我项目中的“生成”文件夹是空的。那么让 dagger 在 IntelliJ 的 Android 项目中工作的正确设置是什么?

最佳答案

未找到 dagger-compiler 依赖项。

Dagger ,JavaWriter和 javax.inject 也是必需的。
(对于 1.2+,还需要 Guava - guava discussion)

尝试将这些 .jars 放在与 dagger-compiler 相同的文件夹中,然后添加 所有 4 也作为注释处理器。这适用于 Eclipse,也适用于 IntelliJ。

或者将所有这些依赖项放在一起制作 1 个“胖” jar 。参见 issue 360了解详情。

可以从 Maven 下载文件:

关于android - 如何在 IntelliJ 中配置 Dagger ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20107182/

相关文章:

android - 如何使用谷歌地图 API 而不是位置管理器获取用户当前位置坐标

android - 使用 Google Play 服务获取排行榜和成就

intellij-idea - 如何防止 Intellij IDEA 自动关注调试器事件?

eclipse - Intellij Idea - Eclipse 剪贴簿等价物

android - Jenkins:Android 项目构建失败(生成数据绑定(bind)/ Dagger 类失败)

Android Activity 和 Service 通信 : how to keep the UI up-to-date

Android 在 addTextChangedListener (edittext) 的某些情况下禁用正面按钮

android - 如何使用IntelliJ-IDEA指定java/android平台?

Android Dagger Hilt : Do we need scope annotations for ViewModels?

android - 使用 gradle 构建时出现 java.lang.ClassCastException : com. sun.tools.javac.code.Symbol$VarSymbol