在Android工作室您正在使用Android框架建設項目。默認情況下,JSR223未嵌入到Android的Java實現中。
但是,您可以在庫中註冊它們。
例如https://github.com/APISENSE/rhino-android這是嵌入rhino
,從Java 7到Android的JavaScript引擎。 (免責聲明:我保持這個庫)
編輯隨後您的意見
我試圖模仿你的行爲,這裏是我有:
當使用犀牛爲ScriptEngine
名:
09-20 11:13:16.151 5997-5997/? I/TEST: using Script engine name: rhino
09-20 11:13:16.159 5997-5997/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: test.app, PID: 5997
java.lang.NoClassDefFoundError: com.sun.script.javascript.ExternalScriptable
at com.sun.script.javascript.RhinoScriptEngine.<init>(RhinoScriptEngine.java:43)
at com.sun.script.javascript.RhinoScriptEngineFactory.getScriptEngine(RhinoScriptEngineFactory.java:51)
at javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:154)
at test.app.Test.execute(Test.java:33)
at test.app.Test.scriptMethod(Test.java:23)
at test.app.Test.onCreate(Test.java:17)
[...]
當使用JavaScript的爲ScriptEngine
名稱:
09-20 11:16:16.883 8776-8776/? I/TEST: using Script engine name: JavaScript
09-20 11:16:16.883 8776-8776/test.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: test.app, PID: 8776
java.lang.RuntimeException: Unable to start activity ComponentInfo{test.app/test.app.Test}: java.lang.UnsupportedOperationException: Engine not found: JavaScript
[...]
Caused by: java.lang.UnsupportedOperationException: Engine not found: JavaScript
at test.app.Test.execute(Test.java:37)
at test.app.Test.scriptMethod(Test.java:23)
at test.app.Test.onCreate(Test.java:17)
[...]
正如你可以看到犀牛試圖實例化一個ScriptEngine
但加載當一個類拋出一個錯誤(com.sun.script.javascript.ExternalScriptable
)。
問題是,你的jar依賴項包含JSR223和一些引擎定義,但不包含實際的腳本引擎。
要糾正這種情況,您可能需要將an actual rhino implementation添加到您的依賴項中。
我們可以看到字符串嗎? – Li357
String a =「if((21.5 * length * length)-15
pmf