解决办法:根build.gradle文件里面加入代码将产生的文件加入sourceset。
plugins{
id "java" apply(true)
id "net.ltgt.apt" version "0.21"
}
group 'com.lucien'
version '1.0'
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.google.dagger:dagger:2.12'
annotationProcessor 'com.google.dagger:dagger-compiler:2.12'
}
compileJava {
String relativePath = "build/generated/src/main/java"
sourceSets.main.java { srcDir relativePath }
File generatedSourceDir = project.file("build/generated/src/main/java")
println "Creating and configuring generated source directory $generatedSourceDir"
project.mkdir(generatedSourceDir)
options.annotationProcessorGeneratedSourcesDirectory = generatedSourceDir
outputs.dir(generatedSourceDir)
doFirst {
// force a clean of generatedSourceDir to prevent java.lang.IllegalStateException: endPosTable already set. This shouldn't be need if using Gradle 4.8+ or Java 9+.
project.delete(generatedSourceDir)
project.mkdir(generatedSourceDir)
}
}
效果如图所示: