【问题标题】:Java/IntelliJ not recognising the "Dagger" keyword for Dagger2 ComponentsJava/IntelliJ 无法识别 Dagger2 组件的“Dagger”关键字
【发布时间】:2016-05-07 05:05:03
【问题描述】:

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

相当于

CoffeeShop coffeeShop = DaggerCoffeeShop.create();

IDE (IntelliJ) 无法识别。 这是一个原生 Java 项目。 “DaggerCoffeShop”部分全是红色的。

组件正在使用以下语法:

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

“ModuleClassName”是使用@Module 注释的模块的名称,包括@Provides 方法。

要获取我在 Gradle 中使用的库:

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

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

任何帮助或指导表示赞赏。我发现文档对于像我这样的初学者来说并不是那么好。

【问题讨论】:

  • 一个问题可能是 IntelliJ 没有与您正在使用的库同步。您应该在某处看到 Gradle 刷新/同步符号。单击它应该对您有所帮助。此外,这可能是 IntelliJ 的问题,而不是 Java 的问题。您可能需要改写您的问题标题。
  • 感谢您的提示。我更新了主题。就 Gradle 同步而言,我已经做过很多次了。我难住了。我已经看这个太久了。我需要另一个知道以前做过的人的眼睛。我原以为这样的人回答会超级简单。希望我已经充分解释了自己。

标签: java intellij-idea dagger-2


【解决方案1】:

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

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 scoped

【讨论】:

  • “启用注释处理”使咖啡机示例应用程序正常工作。因为它运行正常。但由于某种原因,它仍然将“DaggerCoffeeApp_Coffee”标记为红色,表示它无法解析该符号。我下载了示例应用程序,并试图在使用我的其他应用程序之前使用 Gradle 运行它。有了你的建议,就有进步了!我会将其标记为已解决,但从技术上讲并非如此。 buildscript 的东西没有做任何事情,它说它无论如何都找不到 maven url 的路径。
  • Hrmm...所以您是说项目本身在启用注释处理的情况下运行,但 Intellij 仍然无法解析路径?这意味着您必须将生成的文件夹添加为源文件夹。
  • 勾选启用注释处理而不做任何其他事情使应用程序工作。然后稍后在 gradle 文件中添加其他内容没有做任何事情(除了提供有关 url 的附加消息)。后来我更改了注释部分中的路径,该消息不再出现,但我仍然得到红色文本。所以它必须是一些简单的东西。也许与这个恰当的事情有关。我正在做这里所说的,但它仍然在抱怨:github.com/tbroyer/gradle-apt-plugin
  • 仅供参考,就像我说的那样,我只是想让示例咖啡应用程序正常工作,因此任何人都可以尝试相当容易地重现问题(假设已安装所有相关软件)。如果有人让它工作,那么只需发布相关部分,我会看看我的有什么不同。
  • 你是否按照我所说的将生成的源添加为源文件
猜你喜欢
  • 2017-05-18
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多