2009-09-21 53 views

Trả lời

4

javax.script.ScriptEngine không phải là phần mặc định của android, nhưng bạn có thể dễ dàng kết hợp bất kỳ thư viện nào bạn cần (giả sử kích thước là hợp lý, tôi không chắc chắn) và đưa chúng vào dự án của bạn.

3

Theo điều này post, javax.script.ScriptEngine không khả dụng trong SDK Android. Bạn có thể thử các bước dưới đây để bao gồm thư viện, nhưng mã có thể không chạy, mặc dù nó sẽ biên dịch.

Sử dụng Bộ công cụ phát triển Android trong Windows, tôi đã thực hiện các bước sau để lấy thư viện javax.script.

  1. Nhấp chuột phải vào dự án, chuyển đến Thuộc tính (Dự án).
  2. Theo Đường dẫn xây dựng Java, tôi đã chọn tab Thư viện.
  3. Chọn Thêm Thư viện nằm ở phía bên phải giữa các Tab
  4. Chọn JRE Hệ thống Thư viện dưới Add Library và click Next ...
  5. Chọn Workspace Mặc định JRE (jre 7)
  6. Nhấn Finish.
  7. Nhấp vào Ok trên Đường dẫn xây dựng Java để tồn tại các thuộc tính dự án.

Javax.script sau đó được tải.

6

Đối với các lớp javax.script.ScriptEngine, javax.script.ScriptEngineFactory v.v., bạn có thể thêm jsr223.jar vào dự án Android của mình: chỉ cần sao chép tệp .jar vào thư mục libs của bạn và thêm nó từ Thuộc tính -> Đường dẫn xây dựng Java.

Các lớp này sẽ cho phép các công cụ tương thích JSR 223 của bạn biên dịch. Sau đó, bạn có thể làm new SomeScriptEngienFactory().getScriptEngine() để nhận động cơ. Tôi đã làm được điều này với JNLua 1.0.4 và Rhino 1.7R2.

Tệp jsr223.jar có thể được tải xuống từ http://www.java2s.com/Code/Jar/j/Downloadjsr223jar.htm, liên kết trực tiếp là http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip.

+0

bạn có thể đăng ứng dụng mẫu không? –

1

Nếu bạn muốn đánh giá một số mã trong JS trong android

1) để phụ thuộc gradle bạn thêm (rhino):

compile 'org.mozilla:rhino:1.7R4' 

2) viết một số mã như thế này để có được kết quả của đánh giá 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) Bạn có thể viết các kịch bản phức tạp khác trong JS để chạy trong ứng dụng android cũng (vui vẻ ctions, v.v.)

Các vấn đề liên quan