Java/IntelliJ 无法识别 Dagger2 组件的 "Dagger" 关键字



我可能遗漏了一些非常基本的内容,所以希望这不是一个难题。

我的

CoffeeShop coffeeShop = DaggerCoffeeShop.create();

IDE(IntelliJ)无法识别这是一个本机Java项目。"dagger咖啡店"部分全部为红色。

该组件使用以下语法:

@Component(modules = <ModuleClassName>.class)
public interface CoffeeShop {
    // some methods.
    // does it matter what goes in here for it to recognise the component?
}

"ModuleClassName"是用@module注释的模块的名称,包括@Providers方法。

为了获得libs,我在Gradle:中使用了这个

compile 'com.google.dagger:dagger:2.4'
compile 'com.google.dagger:dagger-compiler:2.4'

这就是我所需要的吗?我没有得到任何注释的任何错误,只是它无法识别这个Dagger关键字。我错过了什么?

感谢任何帮助或指导。对于像我这样的初学者来说,我觉得文档没有那么好。

您的注释处理可能没有启用。

Settings->Compiler->Annotation Processor->Enable annotation processing

之后,Rebuild Project

如果它仍然认为文件不存在(尽管应用程序运行正常),你必须将生成的源文件夹添加为源文件夹:File->Project Structure->Modules->选择你的项目->Sources->右键单击生成的文件夹中有dagger的东西->Sources


并且compile 'com.google.dagger:dagger-compiler:2.4'应该是apt作用域或annotationProcessor作用域。如果使用Kotlin,则kapt作用域

最新更新