2013-01-22 1 views
5

クラスこの種類のファイルをロードし、このコードから結果を得るが、私はこの例外を持っていないことができアンドロイドRhinoのエラーは、私はアンドロイド(Java)の中にJavaScript関数のコードを実行するには、Androidでサイを使用してい

1月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()メソッドでこのコードを書いて、Rhinoのjarファイルとしてrhino1_7R2.jarを使用しました。

私を助けてください、uはアンドロイドくださいアドバイスでJavaScript(関数の戻り値)から値を取得する他の方法を知っていれば。私は同じ問題を抱えていたし、私はここに解決策を見つけた

おかげ

答えて

3

:デフォルトではProblems using Rhino on Android

、サイはその場でJVMバイトコードを生成することにより、最適化を行いますしようとします。 Androidのは、のDalvikバイトコードBYT JVMバイトコードを実行されません。あなたは、最適化を無効にする必要が理由は次のとおりです。

context.setOptimizationLevel(-1); 

敬具

+0

ところその方法ですか? context' 'には表示されません – Ixx

+0

コンテキストは「org.mozilla.javascript.Context」オブジェクトです。正しいタイプを使用していることを確認してください。 –

関連する問題