由于某些原因,我正在为我的Android应用程序开发一个注释处理器,以生成扩展RealmObject
的类,并用@RealmClass
和@PrimaryKey
注释。我认为领域将从我的处理器生成的类中生成接口和调解器代码。但这不起作用。
// Generated in app/build/generated/source/apt/debug/com/test/RealmRecord.java
// package and imports
@RealmClass
public class RealmRecord extends RealmObject {
@Primary
long id;
String content;
// getters and setters
}
我发现,在我的Android Studio环境中,注释处理器似乎没有在 app/build/build/oferated/oferated/source/apt/xxx ...中搜索文件进一步处理..
任何建议都将不胜感激!
这是Realm注释处理器中的一个错误。请参阅此行:
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
// Don't run this processor in subsequent runs. We created everything in the first one.
if (hasProcessedModules) {
return CONSUME_ANNOTATIONS;
}
...
// more buggy code down there
}
他们的处理器违反了注释处理合同:而不是在每回合期间放弃处理新文件,而是在第一轮之后放弃处理。