lambdaj在Android上的任何调用都失败了java.lang.ExceptionInInitializerError

时间:2013-04-27 20:06:54

标签: android lambdaj

我试图在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?

感谢。

1 个答案:

答案 0 :(得分:5)

显然,根据创作者的说法,lambdaj不适用于Android。 https://groups.google.com/d/msg/lambdaj/km7uFgvSd3k/grJhgl3ik5sJ

在阅读之后我不再试图让它自己运作。