Rhino + env.rhino.js StackruError на Android
Я читаю сообщения других успешно, используя env.rhino.js на Android. Я также заставил Rhino нормально работать в приложении для Android и выполнять простые сценарии, передавая аргументы между Java и JavaScript. Однако, когда я пытаюсь использовать env.rhino.js, независимо от того, какую версию envJ я нахожу и использую, и независимо от того, какой носорог (пробовал rhino1_7R2, rhino1_7R5 и rhino1_7R5pre), я получаю ошибку StackruError. Код в классе на основе деятельности:
public void envjsTest() {
String envJs = convertAssetToString("env.rhino.js");
Context cx = ContextFactory.getGlobal().enterContext();
cx.setOptimizationLevel(-1);
cx.setLanguageVersion(Context.VERSION_1_8);
try {
Scriptable scope = cx.initStandardObjects();
cx.evaluateString(scope, envJs, "env.rhino.js", 1, null);
} finally {
Context.exit();
}
}
Пробовал также разные настройки VERSION, ничего не помогает. Трассировка стека, которую я получаю:
01-18 14:27:18.389: ERROR/AndroidRuntime(2447): FATAL EXCEPTION: main
java.lang.StackruError
at org.mozilla.javascript.Decompiler.appendString(Decompiler.java:208)
at org.mozilla.javascript.Decompiler.addName(Decompiler.java:121)
at org.mozilla.javascript.IRFactory.transformName(IRFactory.java:811)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:120)
at org.mozilla.javascript.IRFactory.transformInfix(IRFactory.java:738)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:161)
at org.mozilla.javascript.IRFactory.transformInfix(IRFactory.java:738)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:161)
at org.mozilla.javascript.IRFactory.transformInfix(IRFactory.java:738)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:161)
at org.mozilla.javascript.IRFactory.transformInfix(IRFactory.java:740)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:161)
at org.mozilla.javascript.IRFactory.transformInfix(IRFactory.java:740)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:161)
at org.mozilla.javascript.IRFactory.transformInfix(IRFactory.java:740)
at org.mozilla.javascript.IRFactory.transform(IRFactory.java:161)
at org.mozilla.javascript.IRFactory.transfor ...
Как это можно исправить? Опять же, похожая функция выполняет прекрасный простой код JavaScript. И, пожалуйста, не говорите мне использовать WebView вместо этого для выполнения кода JavaScript. Мне нужен "безголовый браузер" с возможностью JavaScript, который может быть вызван из сервиса Android, чтобы выполнять некоторую работу в Интернете в фоновом режиме, пока пользователь занят чем-то другим на экране.
Greg