我可能在这里遗漏了一些非常基本的东西,所以希望这不是一个难题。
我相当于
CoffeeShop coffeeShop = DaggerCoffeeShop.create();
IDE(IntelliJ)无法识别。 这是一个原生Java项目。 " Dagger CoffeShop"部分全是红色。
该组件使用以下语法:
@Component(modules = <ModuleClassName>.class)
public interface CoffeeShop {
// some methods.
// does it matter what goes in here for it to recognise the component?
}
&#34; ModuleClassName&#34;是使用@Module注释的模块的名称,包括@Provides方法。
要获得我在Gradle中使用它的库:
compile 'com.google.dagger:dagger:2.4'
compile 'com.google.dagger:dagger-compiler:2.4'
这就是我需要的吗?对于任何注释,我都不会收到任何错误,只有它无法识别的Dagger关键字。我错过了什么?
任何帮助或方向表示赞赏。我没有找到像我这样的初学者那么好的文档。
答案 0 :(得分:3)
您的注释处理可能未启用。
在Settings
- &gt; Compiler
- &gt; Annotation Processor
- &gt; Enable annotation processing
之后,Rebuild Project
如果它仍然认为文件不存在(尽管应用程序正常运行),您必须将生成的源文件夹添加为源文件夹:File
- &gt; Project Structure
- &gt; Modules
- &gt;选择你的项目 - &gt; Sources
- &gt;右键单击生成的文件夹,其中包含Dagger内容 - &gt; Sources
compile 'com.google.dagger:dagger-compiler:2.4'
应为apt
范围或annotationProcessor
范围。如果您使用Kotlin,那么kapt
范围