Java/IntelliJ 无法识别 Dagger2 组件的“Dagger”前缀类

问题描述 投票:0回答:1

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

我的相当于

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 recognize the component?
}

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

为了获取我在 Gradle 中使用的库:

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

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

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

java intellij-idea dagger-2
1个回答
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
作用域

© www.soinside.com 2019 - 2024. All rights reserved.