5

有人在 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 并支持迭代的模板引擎吗?

4

2 回答 2

5

MVEL2 在初始化解析器时尝试对系统 java.version 属性的前 3 个字符进行子串化,而在 Android 下版本为 0。这会导致一堆异常,最终导致 ExceptionInInitializerError。

如果你想强制 java.version 属性,你可以简单地自己设置它:

System.setProperty("java.version", "1.6");

我不知道这会对 Android 造成什么样的奇怪副作用,但至少它可以让 MVEL 解析器启动并运行而不会引发异常!

于 2013-07-04T08:01:51.010 回答
1

带有“java.version”键的 System.setProperty 似乎是 android 中的只读属性,所以它不起作用。我尝试将 MVEL 2 集成到 android 中但没有成功,请尝试使用 EVAL lib

于 2015-04-28T15:49:28.100 回答