Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中引用javax.script.ScriptEngine或计算javascript表达式_Javascript_Android_Scriptengine - Fatal编程技术网

在android中引用javax.script.ScriptEngine或计算javascript表达式

在android中引用javax.script.ScriptEngine或计算javascript表达式,javascript,android,scriptengine,Javascript,Android,Scriptengine,在开发android应用程序时,是否可以引用javax.script.ScriptEngine库? 如果没有,是否有可能在android中计算javascript表达式?Java构建路径添加它 这些类将允许您的JSR223兼容引擎进行编译。然后可以执行新的SomeScriptEngienFactory.getScriptEngine以获得引擎。我用JNLua 1.0.4和Rhino 1.7R2成功地做到了这一点 可以从下载文件jsr223.jar,如果您想在android中评估JS中的一些代码,

在开发android应用程序时,是否可以引用javax.script.ScriptEngine库?
如果没有,是否有可能在android中计算javascript表达式?

根据这一点,Android SDK中没有javax.script.ScriptEngine。您可以尝试以下步骤来包含库,但代码可能无法运行,即使它将编译

使用Windows中的Android开发工具包,我执行了以下步骤来获取javax.script库

右键单击项目,转到属性项目。 在Java构建路径下,我选择了Libraries选项卡。 选择位于选项卡右中部的“添加库” 在添加库下选择JRE系统库并单击下一步。。。 选择工作区默认JRE JRE 7 单击Finish。 单击Java构建路径上的Ok以存在项目属性。
然后加载Javax.script。

对于类Javax.script.ScriptEngine、Javax.script.ScriptEngineFactory等,您可以将jsr223.jar添加到Android项目中:只需将.jar文件复制到libs目录,然后从属性->Java构建路径添加它

这些类将允许您的JSR223兼容引擎进行编译。然后可以执行新的SomeScriptEngienFactory.getScriptEngine以获得引擎。我用JNLua 1.0.4和Rhino 1.7R2成功地做到了这一点

可以从下载文件jsr223.jar,如果您想在android中评估JS中的一些代码,可以使用直接链接。

1到您的gradle依赖项添加:

2编写一些这样的代码以获得JS评估的结果

Context rhino = Context.enter()
// turn off optimization to work with android
rhino.optimizationLevel = -1

String evaluation = "2+2"

try {
    ScriptableProject scope = rhino.initStandardObjects()
    String result = rhino.evaluateString(scope, evaluation, "JavaScript", 1, null).toString()
} finally {
    Context.exit()
}

3您可以用JS编写更复杂的脚本,以便在android应用程序中运行,还可以运行其他功能。

您可以发布一个示例应用程序吗?
Context rhino = Context.enter()
// turn off optimization to work with android
rhino.optimizationLevel = -1

String evaluation = "2+2"

try {
    ScriptableProject scope = rhino.initStandardObjects()
    String result = rhino.evaluateString(scope, evaluation, "JavaScript", 1, null).toString()
} finally {
    Context.exit()
}