我正在创建一个Android应用程序。我使用AbstractProcessor从Annotated类和Velocity模板生成我自己的类。
这是生成源文件的方法。
private void createSourceFile(String className, String packageName,
VelocityContext context, Template template) throws IOException {
final JavaFileObject javaFileObject =
processingEnv.getFiler().createSourceFile(packageName + "." + className);
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "creating file: " + javaFileObject.toUri());
final Writer writer = javaFileObject.openWriter();
if (DEBUGGING) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "applying velocity template: " + template.getName());
}
template.merge(context, writer);
writer.close();
}
我的问题是
现在它们位于 build / source / apt 文件夹中,我想在另一个源文件夹中生成它们,以使它们在开发过程中可见。现在我使用DexFile
来查找这个类,但是在使用InstanseRun的新AndroidStudio中,或者当我使用Kotlin或任何其他随机情况时,DexFile会停止收集我生成的类。