无法扩展AbstractProcessor以创建java注释处理器
我正在尝试创建一个javax注释处理器,现在我正在androidstudio中创建。我只是需要一种我认为合适的渐变依赖。现在在格拉德尔,我尝试了以下几点:无法扩展AbstractProcessor以创建java注释处理器,java,annotation-processing,Java,Annotation Processing,我正在尝试创建一个javax注释处理器,现在我正在androidstudio中创建。我只是需要一种我认为合适的渐变依赖。现在在格拉德尔,我尝试了以下几点: provided 'javax.annotation:jsr250-api:1.0' 但当我尝试构建以下类时,它表示找不到AbstractProcessor类: class MyAnnotationProcessor extends AbstractProcessor{ } 如何让它识别这个类 下面是确切的错误: 我的导入内容如下所示:
provided 'javax.annotation:jsr250-api:1.0'
但当我尝试构建以下类时,它表示找不到AbstractProcessor类:
class MyAnnotationProcessor extends AbstractProcessor{
}
如何让它识别这个类
下面是确切的错误:
我的导入内容如下所示:
这是我的java版本:
$java -version
Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
我遇到了同样的问题,我找到了解决办法。请参阅下面的链接:
- 从项目布局中完全删除Java模块
- 确保只有您的代码存活下来,删除模块目录中的所有其他内容(或者只删除.iml文件就足够了?)
- 再次将源代码添加为模块Java库。现在一切都应该开始了
android库模块中无法访问AbstractProcessor。要使其工作,您可以创建一个单独的“java库”模块,并在主模块中添加其依赖项。以下是解决方案的分步说明,该解决方案对我有效:
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.TypeElement;
public class CustomAnnotationProcessor extends AbstractProcessor{
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
}
import java.util.Set;
导入javax.annotation.processing.AbstractProcessor;
导入javax.annotation.processing.RoundEnvironment;
导入javax.lang.model.element.TypeElement;
公共类CustomAnnotationProcessor扩展了AbstractProcessor{
@凌驾
公共布尔过程(设置你的类中有导入吗?你有什么版本的jdk?我在java 6上输入了导入,但它没有被识别。共享整个类?共享确切的错误消息?我发送了一张问题的照片。似乎有人不相信你在使用java 8。你的IDE可能指向旧版本的jdk?你不需要任何使用AbstractProcessor的依赖项——它是Java附带的。那么,有可能生成一个包含Android类的文件吗?花了几个小时!谢谢UUU:)