Java/IntelliJ无法识别;匕首;Dagger2组件的关键字

Java/IntelliJ无法识别;匕首;Dagger2组件的关键字,java,intellij-idea,dagger-2,Java,Intellij Idea,Dagger 2,我可能在这里遗漏了一些非常基本的东西,所以希望这不是一个困难的问题 我的等价物 CoffeeShop coffeeShop = DaggerCoffeeShop.create(); 未被IDE(IntelliJ)识别这是一个本机Java项目。“匕首咖啡店”部分全部为红色 组件正在使用以下语法: @Component(modules = <ModuleClassName>.class) public interface CoffeeShop { // some methods

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

我的等价物

CoffeeShop coffeeShop = DaggerCoffeeShop.create();
未被IDE(IntelliJ)识别这是一个本机Java项目。“匕首咖啡店”部分全部为红色

组件正在使用以下语法:

@Component(modules = <ModuleClassName>.class)
public interface CoffeeShop {
    // some methods.
    // does it matter what goes in here for it to recognise the component?
}
这就是我所需要的吗?我没有发现任何注释有任何错误,只是这个匕首关键词无法识别。我错过了什么


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

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

设置中
->
编译器
->
注释处理器
->
启用注释处理

之后,
重建项目

如果它仍然认为文件不存在(尽管应用程序运行正常),您必须将生成的源文件夹添加为源文件夹:
文件
->
项目结构
->
模块
->选择您的项目->
->右键单击包含匕首内容的生成文件夹->



compile'com.google.dagger:dagger compiler:2.4'
应为
apt
范围或
annotationProcessor
范围。如果您使用Kotlin,那么
kapt
scoped

一个问题可能是IntelliJ没有与您正在使用的库同步。您应该在某处看到渐变刷新/同步符号。点击这个按钮应该会对你有所帮助。此外,这可能是IntelliJ的问题,而不是Java的问题。您可能需要重新表述您的问题标题。谢谢您的提示。我更新了主题。就Gradle同步而言,我已经做过很多次了。我被难住了。我看这个太久了。我需要另一双眼睛,有人知道我以前做过。我原以为这样一个人回答会非常简单。希望我已经很好地解释了我自己。请看:“启用注释处理”使咖啡机示例应用程序能够工作。因为它运行正常。但出于某种原因,它仍然用红色标记“DaggerOffeeAppu咖啡”,表示无法解析该符号。我下载了这个示例应用程序,并正在尝试使用Gradle让它运行,然后再使用我的另一个应用程序。你的建议使情况有所改善!我会标记它解决了,但技术上它不是。buildscript没有做任何事情,它说它无论如何都找不到maven url.Hrmm的路径。。。你是说项目本身运行时启用了注释处理,但Intellij仍然无法解析路径?这意味着您必须将生成的文件夹添加为源文件夹。勾选启用注释处理,而无需执行任何其他操作即可使应用程序正常工作。后来在gradle文件中添加其他内容没有任何作用(除了提供关于url的附加消息)。后来我更改了注释部分中的路径,该消息不再出现,但我仍然得到了红色文本。所以它必须是简单的。也许和这件事有关。我在做这里所说的,但它仍然在抱怨:仅供参考,就像我说的,我只是想让示例咖啡应用程序工作,这样任何人都可以尝试相当容易地重现问题(假设安装了所有相关软件)。如果有人让它工作,然后只张贴相关的部分,我会看看有什么不同与我的。你添加了生成的源作为一个源文件,如我所说的
compile 'com.google.dagger:dagger:2.4'
compile 'com.google.dagger:dagger-compiler:2.4'