我可能遗漏了一些非常基本的内容,所以希望这不是一个难题。
我的
CoffeeShop coffeeShop = DaggerCoffeeShop.create();
IDE(IntelliJ)无法识别这是一个本机Java项目。"dagger咖啡店"部分全部为红色。
该组件使用以下语法:
@Component(modules = <ModuleClassName>.class)
public interface CoffeeShop {
// some methods.
// does it matter what goes in here for it to recognise the component?
}
"ModuleClassName"是用@module注释的模块的名称,包括@Providers方法。
为了获得libs,我在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
作用域