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

Mic*_*ovo 5 java intellij-idea dagger-2

我可能在这里遗漏了一些非常基本的东西,所以希望这不是一个难题.

我相当于

CoffeeShop coffeeShop = DaggerCoffeeShop.create();
Run Code Online (Sandbox Code Playgroud)

IDE(IntelliJ)无法识别.这是一个本机Java项目." Dagger CoffeShop"部分全是红色.

该组件使用以下语法:

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

"ModuleClassName"是使用@Module注释的模块的名称,包括@Provides方法.

为了获得libs我在Gradle中使用它:

compile 'com.google.dagger:dagger:2.4'
compile 'com.google.dagger:dagger-compiler:2.4'
Run Code Online (Sandbox Code Playgroud)

这就是我需要的吗?对于任何注释我都没有任何错误,只是这个Dagger关键字无法识别.我错过了什么?

任何帮助或方向赞赏.对于像我这样的初学者,我没有找到那么棒的文档.

Epi*_*rce 6

您的注释处理可能未启用。

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作用域