得到一个非常奇怪的问题;希望你们能提供帮助。
很长一段时间以来我一直在我的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
仍然存在于与之前相同的位置。
请让我知道你的想法。谢谢。
当与其他代码gen libs结合使用时,Dagger 2确实会产生奇怪的错误消息。
如果你仔细研究错误,那么你可能会发现另一个说“无法找到符号类DaggerXXXComponent”(或类似的东西)。
你很可能有一些问题让Dagger预处理器失败。然后,由于Dagger失败,其他代码将不会运行,包括Immutables。
您需要调试导致Dagger失败的错误,然后Immutables错误也会消失。