是否有可能開發Android應用程序時引用javax.script.ScriptEngine中的圖書館嗎? 如果沒有反正有可能評估Android中的JavaScript表達式?參考javax.script.ScriptEngine中在Android或評估JavaScript表達式
6
A
回答
4
javax.script.ScriptEngine不是android的默認部分,但是您可以輕鬆地將所需的任何庫(假設大小合理,我不確定)炸開,並將它們包含在您的項目中。
3
根據此post,javax.script.ScriptEngine在Android SDK中不可用。您可以嘗試下面的步驟來包含庫,但是代碼可能無法運行,即使它會編譯。
在Windows中使用Android的開發工具包,我執行了以下步驟獲得的javax.script庫。
- 右鍵單擊該項目,進入屬性(項目)。
- 在Java構建路徑,我選擇Libraries選項卡。
- 選擇添加庫位於標籤
- 選擇JRE系統庫下添加庫中間偏右,然後單擊下一步...
- 選擇工作區默認JRE(JRE 7)
- 點擊完成。
- 單擊Java Build Path上的Ok以存在項目屬性。然後
在javax.script加載。
6
對於類javax.script.ScriptEngine中,的javax.script.ScriptEngineFactory等,可以將jsr223.jar添加到您的Android項目:剛纔複製的.jar文件到您的libs目錄,並從屬性添加它 - > Java Build Path。
這些類將允許你符合JSR 223型發動機進行編譯。然後你可以做new SomeScriptEngienFactory().getScriptEngine()
來獲得引擎。我已經設法用JNLua 1.0.4和Rhino 1.7R2來做到這一點。
文件jsr223.jar可以從http://www.java2s.com/Code/Jar/j/Downloadjsr223jar.htm下載,直接鏈接是http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip。
1
如果要評估JS在android系統
1)一些代碼到你的gradle這個依賴性增加(rhino):
compile 'org.mozilla:rhino:1.7R4'
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應用也(樂趣運行ctions等)
相關問題
- 1. 參考表達式的評估
- 2. 評估JavaScript表達式
- 3. 在javascript中的表達式評估
- 4. 評估表達式
- 5. 如何評估JavaScript表達式?
- 6. Javascript無法評估表達式
- 7. 如何評估以下Javascript表達式?
- 8. JavaScript如何評估語句表達式?
- 9. 用於布爾表達式評估的Javascript評估
- 10. 在C中評估布爾表達式
- 11. 在JSP中未評估EL表達式
- 12. 在java中評估後綴表達式
- 13. 評估在楓樹中的表達式
- 14. 調試表達式評估
- 15. 表達式樹評估
- 16. Xtext評估表達式
- 17. 評估數學表達式
- 18. 表達式評估順序
- 19. 表達式無法評估
- 20. 內聯表達式評估
- 21. 評估集合表達式
- 22. 評估前綴表達式
- 23. JasperReports表達式評估
- 24. 遞歸表達式評估?
- 25. 評估表達式樹
- 26. 評估lambda表達式
- 27. AngularJS不評估表達式
- 28. Groovy表達式評估
- 29. 表達式評估序列
- 30. 如何評估表達式?
您可以發佈一個示例應用程序? – 2017-02-01 14:12:19