上下文
我已经在java中启动了一个个人项目Gradle
作为构建系统,我想使用Dagger 2作为DI.这样做的主要原因是习惯了该库,并能够在更大的项目中轻松使用它.
我试过了什么
我已设法使用IntelliJ IDEA运行Google示例
问题
IntelliJ IDEA一直告诉我它无法解析生成的类(在本例中DaggerCoffeeApp_Coffee
).不知道编写的代码是否正确(特别是在学习使用Dagger 2时),这有点烦人.
所有java类都与Google示例相同.这是我的build.gradle
档案:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.google.dagger:dagger:2.0.1'
compile 'com.google.dagger:dagger-compiler:2.0.1'
}
Run Code Online (Sandbox Code Playgroud)
题
有没有办法让IntelliJ IDEA识别DaggerCoffeeApp_Coffee
为生成的类(因此可以通过`ctrl + left click实现它的实现)?
我在 Android Studio 项目的 Java 库模块中使用 Dagger,该build.gradle
模块的外观如下:
apply plugin: 'java-library'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.dagger:dagger:2.24'
annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
}
sourceCompatibility = "7"
targetCompatibility = "7"
Run Code Online (Sandbox Code Playgroud)
我可以看到 Dagger 正在正确生成实现,并且它们存在于build/generated/sources/annotationProcessor
但由于某种原因我无法在代码中访问它们。package
此外,生成的文件在语句中显示错误:
包名称“com.example.javamodule”与文件路径“java.main.com.example.javamodule”不对应
我在这里有两个问题。首先,如何在 java 模块代码中访问 Dagger 生成的类,其次,如何从生成的类中删除上述错误?