Frage

Ist es möglich, die javax.script.ScriptEngine Bibliothek zu verweisen, wenn eine Android-Anwendung zu entwickeln? Wenn nicht, ist es trotzdem möglich, einen JavaScript-Ausdruck in Android zu bewerten?

War es hilfreich?

Lösung

javax.script.ScriptEngine ist kein Standard-Teil von Android, aber man kann jar bis leicht alle Bibliotheken, die Sie benötigen (vorausgesetzt, die Größe angemessen ist, ich bin nicht sicher) und sie in Ihrem Projekt.

Andere Tipps

Für die Klassen javax.script.ScriptEngine, javax.script.ScriptEngineFactory und so weiter, können Sie die jsr223.jar auf Ihr Android-Projekt hinzufügen: nur die .jar-Datei auf Ihrem Libs-Verzeichnis kopieren, und fügen Sie es aus Properties- > Java Build Path.

wird diese Klasse Ihrer JSR 223-konforme Motoren erlauben zu kompilieren. Anschließend können Sie tun new SomeScriptEngienFactory().getScriptEngine() einen Motor zu bekommen. Ich habe es geschafft, dies zu tun mit JNLua 1.0.4 und Rhino 1.7R2.

Die Datei jsr223.jar von heruntergeladen werden können http: //www.java2s .com / Code / Glas / j / Downloadjsr223jar.htm , ist ein direkter Link http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip .

Gemäß dieser Post , javax.script.ScriptEngine in Android SDK ist nicht verfügbar. Sie können die Schritte unten versuchen, die Bibliothek zu schließen, aber der Code kann nicht ausgeführt werden, obwohl es kompiliert.

Mit Android Development Toolkit in Windows, ich ausgeführt, um die folgenden Schritte javax.script Bibliothek zu erhalten.

  1. -Recht angeklickt auf dem Projekt, ging an Eigenschaften (Projekt).
  2. Unter der Java Build Path, entschied ich mich Registerkarte Bibliotheken.
  3. Wählen Sie Bibliothek auf der Mitte rechts neben der Tab befindet Hinzufügen
  4. Wählen Sie JRE System Library unter Add-Bibliothek und klicken Sie auf Weiter ...
  5. Wählen Sie Workspace Standard JRE (jre 7)
  6. Klicken Sie auf Fertig stellen.
  7. Klicken Sie auf OK auf der Java Build Path zu Projekteigenschaften vorhanden sind.

javax.script wurde dann geladen.

Wenn Sie in Android einige Code in JS auswerten möchten

1), um Ihre gradle Abhängigkeiten hinzufügen ( Nashorn ):

compile 'org.mozilla:rhino:1.7R4'

2) schreibt einige Codes wie dies das Ergebnis von JS Auswertung erhalten

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) Sie können komplexere Skripte in JS schreiben in dem Android-App auch (Funktionen usw. ausgeführt werden.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top