2013-01-22 43 views
5

我用犀牛在android系統以執行的Android(Java)的JavaScript函數代碼,並從該代碼得到的結果,但我得到這個例外安卓犀牛錯誤無法加載此類型的類文件

十一月1日至22日: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。

請幫助我,如果你知道任何其他方式來從JavaScript(函數的返回值)獲取價值在android請指教。

感謝

回答

3

我有同樣的問題,我已經找到了解決辦法在這裏:Problems using Rhino on Android

默認情況下,犀牛將嘗試在飛行中產生JVM字節碼做優化。 Android不運行JVM字節碼byt Dalvik字節碼。這就是爲什麼你需要禁用優化:

context.setOptimizationLevel(-1); 

問候

+0

那是哪裏的方法?不出現在'context'中 – Ixx

+0

context是一個「org.mozilla.javascript.Context」對象。確保你使用正確的類型。 –

相關問題