我可能在这里遗漏了一些非常基本的东西,所以希望这不是一个难题。
我的相当于
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 关键字。我错过了什么?
任何帮助或指导表示赞赏。我发现该文档对于像我这样的初学者来说并不是那么有用。
您的注释处理可能未启用。
在
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
作用域