我在Android中使用Rhino在Android(java)中执行JavaScript函数代码并从此代码中获取结果,但是我得到了这个异常
01-22 11:33:57.063:E / AndroidRuntime(29175):引起:java.lang.UnsupportedOperationException:无法加载此类文件
这是我的代码
String test = "function abc(x,y) {return x+y;}";
org.mozilla.javascript.Context context = org.mozilla.javascript.Context.enter();
try {
ScriptableObject scope = context.initStandardObjects();
Scriptable that = context.newObject(scope);
Function fct = context.compileFunction(scope, test, "script", 1, null);
Object result = fct.call(context, scope, that, new Object[] { 2, 3 });
Log.i("JML...Info", "jajajajaj = " + org.mozilla.javascript.Context.jsToJava(result, int.class));
} finally {
org.mozilla.javascript.Context.exit();
}
我在方法
上得到了例外函数fct = context.compileFunction(scope,test,“script”,1,null);
我在加载webview后在方法onCreate()中编写了这段代码,并使用rhino1_7R2.jar作为Rhino的jar。
请帮助我,如果你知道任何其他方式从android中获取值(函数的返回值)请咨询。
由于
答案 0 :(得分:3)
我遇到了同样的问题,我在这里找到了一个解决方案:Problems using Rhino on Android
默认情况下,rhino会尝试通过动态生成JVM字节码来进行优化。 Android不会通过Dalvik字节码运行JVM字节码。这就是你必须禁用优化的原因:
context.setOptimizationLevel(-1);
祝你好运