2009-09-21 9 views

Odpowiedz

4

javax.script.ScriptEngine nie jest domyślną częścią Androida, ale możesz łatwo podskoczyć do potrzebnych bibliotek (zakładając, że rozmiar jest rozsądny, nie jestem pewien) i uwzględnić je w twoim projekcie.

3

Zgodnie z tym post, javax.script.ScriptEngine nie jest dostępny w pakiecie Android SDK. Możesz wypróbować poniższe kroki, aby dołączyć bibliotekę, ale kod może nie działać, nawet jeśli zostanie skompilowany.

Przy użyciu zestawu narzędzi Android Development Toolkit w systemie Windows wykonałem następujące kroki, aby uzyskać bibliotekę javax.script.

  1. Kliknij projekt prawym przyciskiem myszy, przejdź do Właściwości (projekt).
  2. Pod ścieżką budowania Java wybrałem kartę Biblioteki.
  3. Wybierz Dodaj Biblioteka znajduje się na środkowym prawej stronie zakładki
  4. Wybierz JRE biblioteki systemowej obszarze Dodaj Biblioteki i kliknij Dalej ...
  5. Wybierz Workspace Domyślny JRE (JRE 7)
  6. Kliknij przycisk Zakończ.
  7. Kliknij przycisk Ok na ścieżce budowania Java, aby istnieć właściwości projektu.

Javax.script został załadowany.

6

Dla klas javax.script.ScriptEngine, javax.script.ScriptEngineFactory i tak dalej, możesz dodać jsr223.jar do swojego projektu Android: po prostu skopiuj plik .jar do swojego katalogu libs i dodaj go z Właściwości -> Ścieżka budowania Java.

Te klasy pozwolą na kompilację silników zgodnych z JSR 223. Możesz następnie wykonać new SomeScriptEngienFactory().getScriptEngine(), aby uzyskać silnik. Udało mi się to zrobić przy pomocy JNLua 1.0.4 i Rhino 1.7R2.

Plik jsr223.jar można pobrać z http://www.java2s.com/Code/Jar/j/Downloadjsr223jar.htm, bezpośredni link to http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip.

+0

Czy możesz wysłać przykładową aplikację? –

1

Jeśli chcesz ocenić jakiś kod w JS w Android

1) do zależności Gradle dodać (rhino):

compile 'org.mozilla:rhino:1.7R4' 

2) napisać kod tak, aby uzyskać wynik JS oceny

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) można napisać bardziej skomplikowanych skryptów JS, aby uruchomić w aplikacji na androida także (zabawy ctions itp.)

Powiązane problemy