dependency-injection - Dagger2 注解处理器是否支持 Eclipse 增量编译器?

标签 dependency-injection dagger-2 dagger

Dagger2注解处理器是否支持Eclipse增量编译器? 我用示例应用程序设置了 Dagger2,在完全编译后(清理项目后)一切正常,但经过小的更改(模块或组件)并且只有增量编译器运行时没有任何更新(并且错误显示在 Eclipse 日志中) . 这是正常的吗?如果不是,我该如何解决这个问题,因为完整的编译器运行成本很高。

谢谢

最佳答案

是也不是。

Dagger 被编写为仅使用作为 JDK 的一部分提供的标准注释处理 API。在其实现中没有特定于编译器的内容。因此,从理论上讲,Dagger 应该可以在任何 编译器下运行。

不幸的是,在尝试使用 Eclipse 的 API 实现运行 Dagger 时,我们遇到了大量错误。任何基于 ECJ 的东西(Eclipse 的增量编译、Android 的 Jack toolchain 等)往往会以意想不到的方式崩溃。

虽然像 AutoValue 这样的项目以足够有限的方式进行注释处理以构建 workarounds对于它们所需的功能,这对于 Dagger 来说将是一项更大的任务。

因此,如果/当 Eclipse 能够可靠地支持注释处理时,Dagger 应该可以工作。

关于dependency-injection - Dagger2 注解处理器是否支持 Eclipse 增量编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41178320/

相关文章:

dependency-injection - 使用 StructureMap 时传递构造函数参数

java - Dagger : java. lang.NoSuchMethodError : com. google.common.collect.SetMultimap.forEach(Ljava/util/function/BiConsumer;)V

android - 启用使用 Dagger 设置 android workmanager 以在 android worker 中注入(inject)存储库

java - Dagger2 "cannot be provided without an @Provides-annotated method."问题

android - 使用 Hilt 注入(inject) viewModel 时不调用 init

java - Dagger 2错误: cannot be provided without an @inject constructor or from an @provides-annotated method

spring - 如何使用 main(String[] args) 方法中的 Autowiring (@Autowired) 引用?

android - 在 Kotlin 的 Injekt 库中,如何创建本地作用域,例如为每个 Android Activity 创建本地作用域?

c# - 具有依赖注入(inject)的存储库和专用存储库的装饰器链接

java - Dagger2 - 应用程序不能依赖于多个作用域组件