Android:Dagger 2会干扰Immutables?

问题描述 投票:1回答:1

得到一个非常奇怪的问题;希望你们能提供帮助。

很长一段时间以来我一直在我的android项目中使用Immutables library而没有任何问题。 Immutable对象的自动生成的文件位于(例如)build/generated/source/apt/debug/com/package/name/ImmutableClass.java中,项目编译并正常工作。

我最近决定在同一个项目中使用Dependency Injection并开始使用Dagger 2.我在另一个Java项目(非Android)中使用过Guice,但之前从未使用过Dagger。突然间,我开始得到奇怪的错误,说无法找到Immutables类。

错误:error: cannot find symbol class ImmutableClass

我尝试删除我创建的@Component@Module,错误消失了。有趣的是文件ImmutableClass.java仍然存在于与之前相同的位置。

请让我知道你的想法。谢谢。

java android guice dagger-2 immutables-library
1个回答
2
投票

当与其他代码gen libs结合使用时,Dagger 2确实会产生奇怪的错误消息。

如果你仔细研究错误,那么你可能会发现另一个说“无法找到符号类DaggerXXXComponent”(或类似的东西)。

你很可能有一些问题让Dagger预处理器失败。然后,由于Dagger失败,其他代码将不会运行,包括Immutables。

您需要调试导致Dagger失败的错误,然后Immutables错误也会消失。

© www.soinside.com 2019 - 2024. All rights reserved.