我试图在Android上使用lambdaj但是每次调用我都会得到一个异常(java.lang.ExceptionInInitializerError)。
填充该集合的类是:
@DatabaseTable(tableName = "sections")
public class Section {
@DatabaseField(id = true, unique = true)
private int id;
@DatabaseField(canBeNull = false)
private String name;
public Section() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ORMLite使用注释。我离开了他们,以防他们以某种方式相关。我对此表示怀疑。
现在如果我尝试做一个简单的调用,就会崩溃:
List<Section> sections = fillSections(); //this is correctly filled
select(sections, having(on(Section.class).getId(), Matchers.greaterThan(1)))
logcat的:
FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at ch.lambdaj.proxy.ProxyUtil.createEnhancer(ProxyUtil.java:89)
at ch.lambdaj.proxy.ProxyUtil.createProxy(ProxyUtil.java:49)
at ch.lambdaj.function.argument.ArgumentsFactory.createPlaceholder(ArgumentsFactory.java:68)
at ch.lambdaj.function.argument.ArgumentsFactory.registerNewArgument(ArgumentsFactory.java:58)
at ch.lambdaj.function.argument.ArgumentsFactory.createArgument(ArgumentsFactory.java:50)
at ch.lambdaj.function.argument.ArgumentsFactory.createArgument(ArgumentsFactory.java:39)
at ch.lambdaj.Lambda.on(Lambda.java:63)
让我感到困惑的是,我在java控制台应用程序中尝试了相同的代码并且它有效...
知道为什么这不适用于Android?
感谢。
答案 0 :(得分:5)
显然,根据创作者的说法,lambdaj不适用于Android。 https://groups.google.com/d/msg/lambdaj/km7uFgvSd3k/grJhgl3ik5sJ
在阅读之后我不再试图让它自己运作。