android Rhino错误无法加载此类类文件

时间:2013-01-22 08:53:05

标签: android android-webview rhino

我在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中获取值(函数的返回值)请咨询。

由于

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我在这里找到了一个解决方案:Problems using Rhino on Android

默认情况下,rhino会尝试通过动态生成JVM字节码来进行优化。 Android不会通过Dalvik字节码运行JVM字节码。这就是你必须禁用优化的原因:

context.setOptimizationLevel(-1);

祝你好运