2013-06-26 18 views
5

Czy ktoś miał doświadczenie z MVEL2 na Androida?MVEL2 na Androida rzuca wyjątek

Próbowałem się ten sam kod za pomocą prostego programu Java i później na Androidzie:

Poniżej jest wyjątek, gdy wykonywane na Androidzie:

E/AndroidRuntime(30793): java.lang.ExceptionInInitializerError 

Próbowałem przykład z mvel www:

String template = "Hello, my name is @{name.toUpperCase()}"; 
Map vars = new HashMap(); 
vars.put("name", "Michael"); 
System.out.println(TemplateRuntime.eval(template, vars)); 

Jeśli tam nie rozwiązanie może ktoś zaproponować system szablonów, który działa z android i wspiera iteracji?

Odpowiedz

5

MVEL2 próbuje podciąć pierwsze 3 znaki właściwości java.version systemu podczas inicjowania analizatora składni, a pod systemem Android wersja 0. To powoduje kilka wyjątków, które ostatecznie powodują wyjątek ExceptionInInitializer.

Jeśli chcesz zmusić właściwość java.version, można po prostu ustawić go sobie pytanie:

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

nie mam pojęcia, jakiego rodzaju dziwnych efektów ubocznych może to spowodować dla Androida, ale przynajmniej robi parser MVEL działa i nie rzuca wyjątków!

+2

Jeśli martwisz się efektami ubocznymi, spróbuj ponownie przywrócić nieruchomość. Lubię to. 'String javaVersion = System.getProperty (" java.version "); System.setProperty ("java.version", "1.6"); doCodeHere(); System.setProperty ("java.version", javaVersion); ' – Kayla

+0

musi to oznaczać jako odpowiedź –

1

System.setProperty z kluczem "java.version" wydaje się być tylko do odczytu propery w systemie Android, więc nie będzie działać. Próbowałem zintegrować MVEL 2 z Androidem bez powodzenia, try using EVAL lib

Powiązane problemy