我试着制作自己的小型计算器,但我不想自己制作所有的商业逻辑。所以我尝试使用javax.script
因为我听说javax.script
需要一个真正的JVM并且是一个JavaScriptParser。然后,我搜索了其他具有我需要的功能的库,并找到了项目“exp4j”。首先,我使用JDK 1.7创建了一个小型普通Java项目,是的,它与源代码一起使用:
public static void main(String[] args) throws UnknownFunctionException, UnparsableExpressionException {
ExpressionBuilder builder=new ExpressionBuilder("34*2");
Calculable calc=builder.build();
System.out.println(calc.calculate());
}
然后,我在我的计算器模型(MVC模式)中尝试了相同的代码:
public void berechnen() throws UnknownFunctionException, UnparsableExpressionException {
ExpressionBuilder builder=new ExpressionBuilder("34*2");
Calculable calc=builder.build();
setErgebnis(calc.calculate());
}
但每次我都得到同样的例外:
“AndroidRuntime(630):java.lang.VerifyError”,
我启动应用程序后。我无法点击运行方法berechnen()
的按钮,因为应用程序在启动后崩溃。
我很困惑为什么我的程序不起作用。当我删除所有导入的exp4j并删除计算源时,我的计算器工作正常。
我唯一的想法是exp4j libaries正在使用Android中不存在的类或方法。
谢谢。
答案 0 :(得分:3)
你可能有两次包含jar,在libs文件夹和属性库中检查一次,我在过去遇到过同样你需要做的是
删除库中的内容并将其粘贴到android应用程序项目的res/lib
文件夹中,然后清除项目