有人在 android 上使用过 MVEL2 吗?
我已经用一个简单的 java 程序尝试了相同的代码,后来又在 android 上尝试了:
在android上执行会抛出如下异常:
E/AndroidRuntime(30793): java.lang.ExceptionInInitializerError
我尝试了 mvel 网站上的示例:
String template = "Hello, my name is @{name.toUpperCase()}";
Map vars = new HashMap();
vars.put("name", "Michael");
System.out.println(TemplateRuntime.eval(template, vars));
如果没有解决方案,谁能推荐一个适用于 android 的模板引擎 并支持迭代?
最佳答案
MVEL2 在初始化解析器时尝试对系统 java.version 属性的前 3 个字符进行子字符串化,而在 Android 下版本为 0。这会导致一堆异常,最终导致 ExceptionInInitializerError。
如果你想强制 java.version 属性,你可以简单地自己设置它:
System.setProperty("java.version", "1.6");
我不知道这会对 Android 造成什么样的奇怪副作用,但至少它可以启动并运行 MVEL 解析器而不会抛出异常!
关于android - android 上的 MVEL2 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318977/